2009-05-24 26 views
2

マウスを使用してウィンドウの1つに近づくとスクロールする場合、どうすればこの方法に近づけることができますか?マウスの位置を使用してウィンドウをスクロールさせるにはどうすればよいですか?

これまでは正常に動作していましたが、スクロールするのに十分に近いかどうかを確認するために移動するたびに位置を確認します。

ただし、マウスが動くたびに位置を確認するだけなので、エッジを閉じると1回スクロールし、はもう一度チェックしてもう一度スクロールできるかどうかを確認します。

どうすればいいですか?ループは機能しません。なぜなら、チェックの途中で中断することなく、継続的にチェックするだけでブラウザをフリーズさせるからです。私もそうtechinally、

function startScrolling() { 
    //If we're close to an edge start scrolling in that direction 
    //Else stopScrolling = true; 

    if(!stopScrolling) { 
     setTimeout(startScrolling(), "1000"); 
    } 
} 

この機能は、マウス移動イベントにによって設定されたグローバルvariabelsからマウスの位置を取得します...それはそれは新しいマウス位置を持っている必要があります実行するたびにこれをやってみました。しかし、startScrolling()をもう一度呼び出す前に待っているように見えることさえありません。すなわち、あなたがstartScrolling()を呼び出し、setTimeoutの最初のパラメータとしてその結果を渡している -

おかげで、 マット

答えて

0

あなたが投稿コードの問題は、あなたがsetTimeoutに渡すのではなく、startScrollingを実行していることです。その戻り値はnullなので、1秒後に何も呼び出されないので、それを無視しているようです。

あなたは代わりにこれをしたい:

setTimeout(startScrolling, "1000"); 

か:

setTimeout(function(){ startScrolling(); }, "1000"); 

多くの場合、2番目の1つが必要ですが、それは、より短く、より理解しやすいですと、前者がpreferrableですstartScrollingに追加のパラメータを渡す必要があります。

関連する問題