2011-06-01 12 views
2

我已經把滾動處理程序,以我的網頁:如何做一次手術時.scroll我停止

$(window).scroll(function() { 
    ... 
}); 

,我想要做一些操作,當我停止滾動條,而不是當我正在滾動它。

我該怎麼辦?

回答

1

定時器通常是一個嚴重的黑客攻擊,但在這種情況下我想不出任何更好的方法。也許這樣的事情會爲你工作:

var DELAY = 250; // Or whatever makes sense for you. 
var timer = null; 

function scrolling_has_stopped() { 
    timer = null; // Make sure everything is always in a sane state. 

    // Do whatever you want to do when they've stopped scrolling. 
    // ... 
} 

$(window).scroll(function() { 
    if(timer) 
     clearTimeout(timer); 
    timer = setTimeout(scrolling_has_stopped, DELAY); 
}); 

的基本策略是使用計時器延遲了「他們已經停止了滾動」的行動,直到最後滾動事件後的數個時鐘週期,剩下的只是簿記。你會想要玩弄DELAY的價值來獲得感覺正確的東西。

有用的參考資料: