有没有一种方法可以停止鼠标滚轮事件以在调用后停止触发?我正在尝试使用此逻辑在页面之间切换(一次一页/每次滚动一页,但滚动应该在最高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);
};
答案 0 :(得分:0)
尝试这样写最后2个块:
const addScrollEventListener = () => {
window.addEventListener("mousewheel", listenToWheel);
};
const removeScrollEventListener = () => {
window.removeEventListener("mousewheel", listenToWheel);
};
有些浏览器更喜欢使用mousewheel事件而不是wheel。