3
有人能explaine和幫助我。由於滾動功能將其拖拽,因此我的網頁很糟糕。我需要添加一個延遲,但不知道如何做到這一點。JavaScript事件處理滾動事件與延遲
$(window).scroll(handleScroll);
有人能explaine和幫助我。由於滾動功能將其拖拽,因此我的網頁很糟糕。我需要添加一個延遲,但不知道如何做到這一點。JavaScript事件處理滾動事件與延遲
$(window).scroll(handleScroll);
你可以編寫一個簡單的throttle debounce function來限制滾動事件每秒處理的時間。
function debounce(method, delay) {
clearTimeout(method._tId);
method._tId= setTimeout(function(){
method();
}, delay);
}
$(window).scroll(function() {
debounce(handleScroll, 100);
});
這將確保有每個調用之間至少100毫秒到handleScroll
(或者,換句話說,這就是所謂的以每秒最多10次)。作爲zzzzBov指出,Zakas描述的節流功能實際上是一個去抖動功能。不同之處在於,去抖動會丟棄多餘的滾動事件,而油門功能應該排隊等待稍後處理(但是以給定的最大速率)。
在滾動事件的情況下,你不希望真正的節流。
這實際上是[debouncing](http://davidwalsh.name/function-debounce),與限制稍有不同。 – zzzzBov 2014-02-25 18:27:50
@zzzzBov:你是對的,謝謝你的提升。 – PPvG 2014-02-26 11:24:37