2017-01-31 45 views
2

當用戶滾動到特定區域時,我正在嘗試執行特定任務。快速滾動時獲取scrollTop

我遇到的問題是,當用戶以正常速度滾動時,我可以捕獲當前的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