onMouseMove ottiene la posizione del mouse

In javascript, all’interno dell’evento javascript hander per onMouseMove come faccio a ottenere la posizione del mouse in x, y si corrompe rispetto alla parte superiore della pagina?

se puoi usare jQuery, allora questo aiuterà:

ecco un puro esempio di javascript:

 var tempX = 0; var tempY = 0; function getMouseXY(e) { if (IE) { // grab the xy pos.s if browser is IE tempX = event.clientX + document.body.scrollLeft; tempY = event.clientY + document.body.scrollTop; } else { // grab the xy pos.s if browser is NS tempX = e.pageX; tempY = e.pageY; } if (tempX < 0){tempX = 0;} if (tempY < 0){tempY = 0;} document.Show.MouseX.value = tempX;//MouseX is textbox document.Show.MouseY.value = tempY;//MouseY is textbox return true; } 

Potrebbe essere un po ‘eccessivo usare d3.js solo per trovare le coordinate del mouse, ma hanno una funzione molto utile chiamata d3.mouse(*container*) . Di seguito è riportato un esempio di come eseguire ciò che si desidera:

 var coordinates = [0,0]; d3.select('html') // Selects the 'html' element .on('mousemove', function() { coordinates = d3.mouse(this); // Gets the mouse coordinates with respect to // the top of the page (because I selected // 'html') }); 

Nel caso precedente, la coordinata x sarebbe le coordinates[0] e la coordinata y sarebbe le coordinates[1] . Questo è estremamente utile, perché puoi ottenere le coordinate del mouse rispetto a qualsiasi contenitore che desideri scambiando 'html' con il tag (ad esempio 'body' ), il nome della class (ad es. '.class_name' ) o id (es '#element_id' ).

Soprattutto con gli eventi in mousemove, quel fuoco veloce e furioso, è buono per abbattere i conduttori prima di usarli-

 var whereAt= (function(){ if(window.pageXOffset!= undefined){ return function(ev){ return [ev.clientX+window.pageXOffset, ev.clientY+window.pageYOffset]; } } else return function(){ var ev= window.event, d= document.documentElement, b= document.body; return [ev.clientX+d.scrollLeft+ b.scrollLeft, ev.clientY+d.scrollTop+ b.scrollTop]; } })() 

document.ondblclick = function (e) {alert (Ond (e))};

Questo è provato e funziona in tutti i browser:

  function getMousePos(e) { return {x:e.clientX,y:e.clientY}; } 

Ora puoi usarlo in un evento come questo:

  document.onmousemove=function(e) { var mousecoords = getMousePos(e); alert(mousecoords.x);alert(mousecoords.y); };