Javascript鼠标滚轮事件停止

时间:2020-05-26 21:01:13

标签: javascript

有没有一种方法可以停止鼠标滚轮事件以在调用后停止触发?我正在尝试使用此逻辑在页面之间切换(一次一页/每次滚动一页,但滚动应该在最高500ms发生),但是即使删除监听器,事件仍会调用我的方法:

const listenToWheel = (event) => {
    console.log("SCROLL");
    removeScrollEventListener();
    console.log("DO STUFF");
    if (event.deltaY < 0) {
      getPreviousPage();
    } else if (event.deltaY > 0) {
      getNextPage();
    }
    setTimeout(() => {
      addScrollEventListener();
    }, 800);
  };


const addScrollEventListener = () => {
    window.addEventListener("wheel", listenToWheel);
  };

  const removeScrollEventListener = () => {
    window.removeEventListener("wheel", listenToWheel);
  };

1 个答案:

答案 0 :(得分:0)

尝试这样写最后2个块:

const addScrollEventListener = () => {
    window.addEventListener("mousewheel", listenToWheel);
  };

  const removeScrollEventListener = () => {
    window.removeEventListener("mousewheel", listenToWheel);
  };

有些浏览器更喜欢使用mousewheel事件而不是wheel。

相关问题