繁体   English   中英

Javascript 鼠标滚轮事件停止

[英]Javascript mouse wheel event stop

有没有办法在调用后停止鼠标滚轮事件以停止触发? 我正在尝试使用此逻辑在页面之间切换(一次一页/就像每个滚动一页但滚动应该发生在顶部 500 毫秒),但是即使我删除了侦听器,事件也会继续调用我的方法:

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

尝试像这样编写最后两个块:

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

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

因为某些浏览器更喜欢鼠标滚轮事件而不是滚轮。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM