screenX:以计算机显示屏左上角为原点(兼容各大浏览器)
clientX:以浏览器窗口左上角为原点(兼容各大浏览器),当滑动条移动的时候它将改变。
pageX:FF特有的属性,ie并没有此属性,以文档窗口左上角为原点,也就是以页面的左上角为原点,它的位置是不会随着滑动条的改变而改变。但是,我们可以通过pageX=clientX+scrollLeft-clientleft 来获得一样的效果。clientX(如上所说以浏览器窗口左上角为原点)+scrollLeft(页面向左滚动的距离)-clientleft (边框的厚度);
layerX:FF特有属性,以触发元素最近的设置了absolute或relative的父亲元素左上角为原点(包含border边框);如果没有,就以文档窗口左上角为原点。
offsetX:这个属性不兼容Firefox,以触发元素(当前事件的目标对象)左上角(内容的左上角不包括border)为原点。
function mousePosition(ev) {
if (ev.pageX || ev.pageY) {
return {x: ev.pageX, y: ev.pageY};
}
return {
x: ev.clientX + document.body.scrollLeft - document.body.clientLeft,
y: ev.clientY + document.body.scrollTop - document.body.clientTop
};
}
document.onmousemove = mouseMove;
function mouseMove(ev) {
ev = ev || window.event;
var mousePos = mousePosition(ev);
if (document.body.scrollTop + document.body.clientHeight - mousePos.y < 5) {
self.scroll(0, document.body.scrollTop + 10);
}
}