鼠标位置onscroll

时间:2012-05-15 17:59:36

标签: javascript

当我写onmousemove时,这是有效的http://jsfiddle.net/9NDXF/1/,但当我写onscroll时,这不是:http://jsfiddle.net/9NDXF/7/

如何将鼠标放在滚动位置?

3 个答案:

答案 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)