JavaScript获取鼠标当前位置的三种方法

JavaScript获取鼠标当前位置的三种方法

在日常的网页操作中,常常会遇到鼠标交互的问题,可能会需要知道鼠标的坐标。以下提供了三种方法获取鼠标的坐标。
在这之前需要知道屏幕、浏览器窗口和文档的区别。

相对于屏幕的位置

屏幕指的是电脑的显示器,有14-40+寸大小不等,浏览器窗口大小的变化、文档的上下滚动操作都不会改变鼠标相对于屏幕的位置。
需要着重强调的是event,event是一个声明了全局变量的一个对象,在chrome和IE下,可以随意访问。但Firefox下是没有event这个对象的!
好消息是:在IE8,chrome下,是有event这个对象的!

  function getMousePos(event) {     //event是一个声明了全局变量的一个对象
  var e = event || window.event;    //Firefox下是没有event这个对象的!!
  return {'x':e.screenX,'y':screenY}  
  }

但是多数时间我们更想要的是相对于浏览器窗口的位置信息,我们可以用dom的clientX属性值获取。浏览器窗口大小的改变一般情况下也会改变我们所获取的位置信息。

相对于浏览器窗口的位置

function getMousePos(event) {
  var e = event || window.event;
  return {'x':e.clientX,'y':clientY}
 }

使用clientX属性值可以获取当前页面的位置,这忽略了页面滚动的因素,如果,我们需要知道当前相对于文档的位置,只需要在之前的位置信息加上浏览器窗口滚动的长度即可。
在除了IE6、7、8之外的浏览器,我们可以直接使用pageX属性值即可。

相对于文档的位置

 function getMousePos(event) {
   var e = event || window.event;
   var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
   var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
   var x = e.pageX || e.clientX + scrollX;
   var y = e.pageY || e.clientY + scrollY;
   return { 'x': x, 'y': y };
 }

猜你喜欢

转载自blog.csdn.net/mwl1711883743/article/details/80193402