{ const isScrollingDown = Math.sign(-6ren">
gpt4 book ai didi

javascript - 如何在特定时间段内仅检测一次滚动/滚轮事件?

转载 作者:行者123 更新时间:2023-11-30 09:17:26 26 4
gpt4 key购买 nike

假设我有一个像这样的滚动/滚轮事件:

container.addEventListener("wheel", (e) => {
const isScrollingDown = Math.sign(e.wheelDeltaY);

// call some function once, don't listen for wheel event anymore
// then listen for event again when done
}

基于 deltaY,我检测用户是向下滚动还是向上滚动。当我检测到这个(立即)时,我如何只调用一个函数一次,删除事件监听器,然后在我的函数完成时再次监听它?

我不能从我的事件监听器中删除事件监听器吗?

提前致谢。

最佳答案

您可以使用removeEventListener() 函数。 documentation

例子:

let wheelHandler = function(e) {
toggleListener(wheelHandler, false)
const isScrollingDown = Math.sign(e.wheelDeltaY);
// call some function once, don't listen for wheel event anymore
// then listen for event again when done
toggleListener(wheelHandler, true)
};
let toggleListener = function(listener, add) {
if (add) {
container.addEventListener("wheel", wheelHandler)
} else {
container.removeEventListener("wheel", wheelHandler)
}
}
toggleListener(wheelHandler, true);

关于javascript - 如何在特定时间段内仅检测一次滚动/滚轮事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54052374/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com