Ho usato il codice Canvas fornito altrove in questo sito per creare uno schermo in cui ho diversi png trasparenti sovrapposti con le parti non trasparenti che sono forme irregolari. Posso ottenere il colore sotto il cursore e questo è fantastico. Ma le mie forme sono tutte dello stesso colore e ho bisogno di un modo per ottenere l'ID della forma particolare così so che su quale è stato cliccato. Immagina una mappa fatta di pngs sovrapposti per raggiungere il paese e vuoi scoprire su quale paese è stato fatto clic. Da quello che posso dire, il rilevamento degli ID si applica solo alle regioni rettangolari. Eventuali suggerimenti?È possibile il rilevamento di hit 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);
});
Questo codice ottiene e visualizza il colore (findPos e rgbToHex sono funzioni separate lasciati fuori per chiarezza). Ho bisogno di un ID! Aiuto!
Questo è complicato ma in realtà abbastanza intelligente. Il mio cliente ha un'app che ha diverse centinaia di immagini sovrapposte (come una mappa) e ogni immagine è un rettangolo meno adatto in modo che il caso n. 1 funzioni la maggior parte del tempo. Effettuare il looping dei candidati per i rispettivi colori per l'unico che restituisce un valore di colore> 0 è la soluzione perfetta. –
Grazie. Spesso fornisco il codice sorgente, ma questo è stato un po 'troppo lungo per farlo. –
Nessuna fonte necessaria. Questo è abbastanza personalizzato da non servire allo scopo. :) L'ho già fatto funzionare e stavo pensando di postare sul mio blog. È piuttosto utile. –