2015-12-14 180 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>