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 };
}