鼠标点击的位置,滚动条,兼容

j经常要计算鼠标当前点击的位置,并且页面经常发生了滚动。这个时候需要考虑浏览器的兼容问题(不兼容的属性,得到的内容为0,比如document.body.scrollTop在chrome可以,但是在IE8下,就提示为0):

//方法1
function mousePos(e){
   var x,y;
   var e = e||window.event;
   return {
     x:e.clientX+document.body.scrollLeft + document.documentElement.scrollLeft,
     y:e.clientY+document.body.scrollTop + document.documentElement.scrollTop
   };
};
  
//方法2
//Firefox支持属性pageX,与pageY属性,这两个属性已经把页面滚动计算在内了,
//在Chrome可以通过document.body.scrollLeft,document.body.scrollTop计算出页面滚动位移,
//而在IE下可以通过document.documentElement.scrollLeft ,document.documentElement.scrollTop
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 };
     }

猜你喜欢

转载自zengshaotao.iteye.com/blog/2299279