当我写onmousemove时,这是有效的http://jsfiddle.net/9NDXF/1/,但当我写onscroll时,这不是:http://jsfiddle.net/9NDXF/7/。
如何将鼠标放在滚动位置?
答案 0 :(得分:1)
因为scroll事件没有pageX属性。滚动很糟糕。这是一个不错的article on mouse scroll events和一个jsFiddle of the demo。
“滚动鼠标位置”的唯一方法是在较早的时间记录它,然后在需要时访问它。我会先考虑为什么你认为这是一个好主意: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;
答案 1 :(得分:0)
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;
答案 2 :(得分:0)