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