2017-01-31 10 views
2

ユーザーが特定の領域にスクロールしたときに特定のタスクを実行しようとしています。スクロールするときにスクロールトップを取得する

私が抱えている問題は、ユーザーが通常の速度でスクロールすると、現在のscrollTopの位置を取得して、目的の機能をトリガできることです。

しかし、ユーザーがスクロールを速くすると、スクロールが通常の速度に戻ったときにscrollTopがキャプチャされるように見えます。つまり、ユーザーが機能をトリガーする領域を完全にスクロールできます。

すべてのスクロール速度ですべてのscrollTopの位置を更新する方法が必要です。

私は単純に使用しています:

$('body').scroll(function(e) 
{ 
    intScrollPoint = $(body).scrollTop(); 
}); 

任意のアイデア?

+0

を使用すると、スクロール速度を設定してみましたか? – krisph

+0

[抑制機能](http://benalman.com/projects/jquery-throttle-debounce-plugin/)を使用することをお勧めします。これははるかに合理的なペースで発生します。 – evolutionxbox

+0

例を見てみましょうhttp://jsbin.com/copidifiji/1/edit?html,js,output – krisph

答えて

0

スロットルが、詳細については

window.addEventListener('scroll', throttle(callback, 1)); 

function throttle(fn, wait) { 
    var time = Date.now(); 
    return function() { 
    if ((time + wait - Date.now()) < 0) { 
     fn(); 
     time = Date.now(); 
    } 
    } 
} 

function callback() { 
    // do something, 
} 

をあなたの問題を解決することができ、これを確認link

関連する問題