Solitamente le coordinate del mouse vengono prese rispetto alla finestra del browser, ma jQuery ci permette di effettuare la stessa operazione anche all'interno dei box degli elementi. Vediamo come fare.
Per ottenere le coordinate esatte dobbiamo:
- ottenere l'offset del box dell'elemento
- per l'asse X dobbiamo sottrarre il valore della proprietà
pageX
dell'evento al valore della proprietàleft
dell'offset - per l'asse Y dobbiamo sottrarre il valore della proprietà
pageY
dell'evento al valore della proprietàtop
dell'offset
Ecco un esempio:
$(function() {
$('#box').mouseover(function(e) {
var offset = $(this).offset();
var relativeX = (e.pageX - offset.left);
var relativeY = (e.pageY - offset.top);
console.log('X: ' + relativeX + ' Y: ' + relativeY);
});
});
e
è un riferimento all'oggetto event
di JavaScript, in questo caso mouseover
.