这是有效的:http: //jsfiddle.net/9NDXF/1/当我写 onmousemove 时,但这不是:http: //jsfiddle.net/9NDXF/7/当我写 onscroll 时。
我怎样才能让鼠标位置滚动?
这是有效的:http: //jsfiddle.net/9NDXF/1/当我写 onmousemove 时,但这不是:http: //jsfiddle.net/9NDXF/7/当我写 onscroll 时。
我怎样才能让鼠标位置滚动?
因为滚动事件没有 pageX 属性。卷轴很烂。这是一篇关于鼠标滚动事件的好文章,以及演示的jsFiddle。
“在滚动时获取鼠标位置”的唯一方法是在较早的时间记录它,然后在需要时访问它。不过,我会花很多时间思考为什么你认为这是一个好主意:jsFiddle
var mousePostion = {clientX:0,clientY:0};
function record(e)
{
mousePostion = {
clientX: e.clientX,
clientY: e.clientY
};
}
function print(e)
{
document.getElementById("x").value=mousePostion.clientX;
document.getElementById("y").value=mousePostion.clientY;
}
window.onmousemove=record;
window.onscroll=print;
onscroll 是当用户滚动屏幕时。最小化 jsFiddle 所以有一个滚动条,然后用它滚动。您将看到填充的值。“e”未定义。
function test(e)
{
alert(e);
var doc=document.documentElement;
var body=document.body;
if(e.pageX)
{
document.getElementById("x").value=e.pageX;
document.getElementById("y").value=e.pageY;
}
else
{
document.getElementById("x").value=e.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc&&doc.clientLeft||body&&body.clientLeft||0);
document.getElementById("y").value=e.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc&&doc.clientTop||body&&body.clientTop||0);
}
}
window.onscroll=test;