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à
pageXdell'evento al valore della proprietàleftdell'offset - per l'asse Y dobbiamo sottrarre il valore della proprietà
pageYdell'evento al valore della proprietàtopdell'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.