He usado el código Canvas provisto en otro lugar en este sitio para crear una pantalla donde tengo varias png transparentes superpuestas con las partes no transparentes como formas irregulares. Puedo obtener el color debajo del cursor y eso es genial. Pero mis formas son todas del mismo color y también necesito una forma de obtener la ID de la forma particular para saber en cuál se hizo clic. Imagine un mapa hecho de pngs superpuestos para llegar al país y desea detectar en qué país se hizo clic. Por lo que puedo decir, la detección de id solo se aplica a las regiones rectangulares. ¿Alguna sugerencia?¿Es posible la detección de hits HTML5?
$('#myCanvas').click(function(e){
var position = findPos(this);
var x = e.pageX - position.x;
var y = e.pageY - position.y;
var coordinate = "x=" + x + ", y=" + y;
var canvas = this.getContext('2d');
var p = canvas.getImageData(x, y, 1, 1).data;
var hex = "#" + ("000000" + rgbToHex(p[0], p[1], p[2])).slice(-6);
alert(hex);
});
Este código obtiene y muestra el color (findPos y rgbToHex son funciones separadas que quedan fuera para mayor claridad). Necesito una identificación! ¡Ayuda!
Esto es complicado, pero en realidad bastante inteligente. Mi cliente tiene una aplicación que tiene varios cientos de imágenes superpuestas (como un mapa) y cada imagen es un rectángulo menos ajustado, por lo que el caso n.º 1 funcionará la mayor parte del tiempo. El bucle de candidatos para los colores respectivos para el único que devuelve un valor de color> 0 es la solución perfecta. –
Gracias. A menudo proporciono el código fuente, pero este fue demasiado largo para hacerlo. –
No se necesita fuente. Esto es lo suficientemente personalizado como para que no sirva para el propósito. :) Ya lo tengo funcionando y estaba pensando en publicar en mi blog. Es bastante útil. –