在一些DOM操做中咱们常常会跟元素的位置打交道,鼠标交互式一个常常用到的方面,使人失望的是不一样的游览器下会有不一样的结果甚至是有的游览器下没结果,这篇文章就鼠标点击位置坐标获取作一些简单的总结。html
若是是涉及到鼠标点击肯定位置相对比较简单,获取到鼠标点击事件后,事件screenX,screenY获取的是点击位置相对于屏幕的左边距与上边距,不考虑iframe因素,不一样游览器下表现的还算一致。chrome
function getMousePos(event) { var e = event || window.event; return {'x':e.screenX,'y':screenY} }
简单代码便可实现,然而这时还不够,由于绝大多数状况下咱们但愿获取鼠标点击位置相对于游览器窗口的坐标,event的clientX,clientY属性分别表示鼠标点击位置相对于文档的左边距,上边距。spa
function getMousePos(event) { var e = event || window.event; return {'x':e.clientX,'y':clientY} }
clientX与clientY是获取相对于当前屏幕的坐标,忽略了页面滚动因素,这在不少环境下颇有用,但当咱们须要考虑页面滚动,也就是相对于文档(body元素)的坐标时怎么办呢?只要加上滚动的位移就能够了。code
在chrome能够经过document.body.scrollLeft,document.body.scrollTop计算出页面滚动位移,而在IE下能够经过document.documentElement.scrollLeft,document.documentElement.scrollTophtm
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; //alert('x: ' + x + '\ny: ' + y); return { 'x': x, 'y': y }; }
转载地址:http://www.cnblogs.com/dolphinX/archive/2012/10/09/2717119.html对象