2015-12-14 241 views
2

我正在寫一個腳本,它會反覆將我的鼠標座標寫入元素。但我不確定如何檢測鼠標的信息。有人想指向正確的方向嗎?如何獲取鼠標的座標?

document.getElementById("coords").innerHTML = crdX + ", " + crdY

http://jsfiddle.net/7pj9gpvn/

編輯:我的問題是不是提出問題的複製,因爲所提出的問題是關於同一問題的循環方面,而我的是關心「事件處理'方面。我確實閱讀並試圖確定我需要的信息,但由於我是初學者,我發現他們的代碼難以閱讀。

+0

那你嘗試了嗎? – ashes999

回答

1

您需要附加一個MouseEvent,並且傳遞給處理程序的事件對象將爲您提供座標。如果你想跟蹤到處移動,請將其附加到文檔中。 clientXclientY屬性給你本地座標,而screenXscreenY給你全局座標。

小提琴:http://jsfiddle.net/AtheistP3ace/7pj9gpvn/4/

HTML:

<p id="coords"></p> 
<p id="coords2"></p> 

JS:

document.addEventListener('mousemove', 
    function (event) { 
     var para = document.getElementById('coords'); 
     para.textContent = event.clientX + ", " + event.clientY; 
     var para2 = document.getElementById('coords2'); 
     para2.textContent = event.screenX + ", " + event.screenY; 
    } 
); 

隨意也讀了它自己:https://developer.mozilla.org/en-US/docs/Web/Events/mousemove

3

嘗試這適用於所有的瀏覽器

http://jsfiddle.net/7hxtLqd4/

<html> 

<body> 
      <form name="mShow"> 
     <input type="text" name="MX" value="0" size="4"> X 
     <br> 
     <input type="text" name="MY" value="0" size="4"> Y 
     <br> 
    </form> 

    <script language="JavaScript1.2"> 

     var IE = document.all ? true : false 

     if (!IE) document.captureEvents(Event.MOUSEMOVE) 

     document.onmousemove = getMouse; 

     var tempX = 0 
     var tempY = 0 


     function getMouse(e) { 
      if (IE) { 
       tempX = event.clientX + document.body.scrollLeft 
       tempY = event.clientY + document.body.scrollTop 
      } else { 
       tempX = e.pageX 
       tempY = e.pageY 
      } 

      if (tempX < 0) { 
       tempX = 0 
      } 
      if (tempY < 0) { 
       tempY = 0 
      } 
      // ADD TEMP VALUE FOR FIELDS 
      document.mShow.MX.value = tempX 
      document.mShow.MY.value = tempY 
      return true 
     } 


    </script> 

</body> 

</html>