Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript中的去抖动不使用控制盘事件_Javascript_Debounce - Fatal编程技术网

Javascript中的去抖动不使用控制盘事件

Javascript中的去抖动不使用控制盘事件,javascript,debounce,Javascript,Debounce,我试图使用一个去盎司函数来限制调用的滚动事件的数量 我不知道为什么这根本不起作用 有什么想法吗 window.addEventListener('wheel', () => { debounce(scrollSection, 300); }); const scrollSection = () => { console.log(1); } const debounce = function(fn, d) { let timer; return function()

我试图使用一个去盎司函数来限制调用的滚动事件的数量

我不知道为什么这根本不起作用

有什么想法吗

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);
  }
}

它在每个
控制盘
事件上创建去抖动功能。首先对函数进行解块,然后将其放入事件侦听器

window.addEventListener('wheel',去盎司(scrollSection,300));
常量滚动节=()=>{
控制台日志(1);
}
常数反盎司=函数(fn,d){
让定时器;
返回函数(){
让上下文=这个;
设args=参数;
清除超时(计时器);
计时器=设置超时(()=>{
fn.应用(上下文,args);
}(d);
}
}