document.onmousewheel在进行监听时执行两次的情况
在对 document.onmousewheel进行监听的情况下滑动一次鼠标中回调函数会执行两次,可以在监听事件添加延时开关
代码段如下
methods: {
//上下滚动时的具体处理函数
handle(e, mySwiper) {
if (e.wheelDelta < 0) {
console.log(e.wheelDelta);
} else if (e.wheelDelta > 0) {
console.log(e.wheelDelta);
}
},
}
//此处亦可以在 created()
mounted(){
var throldHold = 200; //规定时间
var flag = true; //规定时间内是否可以触发
window.onmousewheel = document.onmousewheel = (e) => {
if (flag) {
flag = false; //将开关设置为false,false期间内不能触发事件
that.handle(e, mySwiper); //首次可以触发
setTimeout(function () {
flag = true; //规定时间到大后,将开关设置为true
}, throldHold);
}
}
}
参考链接: 鼠标滚轮事件及解决滚轮事件多次触发问题