0

これは機能しています: onmousemoveを書くときはhttp://jsfiddle.net/9NDXF/1/ですが、onscrollを書くときはhttp://jsfiddle.net/9NDXF/7/ではありません。

マウスの位置をスクロールさせるにはどうすればよいですか?

4

3 に答える 3

1

スクロールイベントには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;​
于 2012-05-15T18:04:58.537 に答える
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;​
于 2012-05-15T18:02:14.427 に答える
0

この参照を読んで、それが役立つことを願っています
http://javascriptmagic.blogspot.com/2006/09/getting-scrolling-position-using.html

于 2012-05-15T18:09:03.120 に答える