我正在尝试使用 debounce 函数来限制调用的滚动事件的数量。我不确定为什么这根本不起作用......有任何想法吗?window.addEventListener('wheel', () => { debounce(scrollSection, 300);});const scrollSection = () => { console.log(1);}const debounce = function(fn, d) { let timer; return function() { let context = this; let args = arguments; clearTimeout(timer); timer = setTimeout(() => { fn.apply(context, args); }, d); }}
1 回答
收到一只叮咚
TA贡献1821条经验 获得超4个赞
它在每个wheel事件上创建去抖动功能。先对函数进行去抖动,然后将其放入事件侦听器中。
window.addEventListener('wheel', debounce(scrollSection, 300));
const scrollSection = () => {
console.log(1);
}
const debounce = function(fn, d) {
let timer;
return function() {
let context = this;
let args = arguments;
clearTimeout(timer);
timer = setTimeout(() => {
fn.apply(context, args);
}, d);
}
}
添加回答
举报
0/150
提交
取消