gpt4 book ai didi

javascript - 使用触摸板时消除滚动加速

转载 作者:行者123 更新时间:2023-11-28 03:15:20 48 4
gpt4 key购买 nike

我希望轮子事件触发一次。但由于滚动加速度,每秒都会触发一次。有什么方法可以停止滚动加速或仅触发一次滚轮事件吗?

我使用的是 HP 笔记本电脑,这种情况在所有浏览器上都会发生,尽管加速率略有变化。我还没有检查过物理鼠标是否会发生同样的情况。

这是我的代码:

let animationDuration = 1000;
let lastTime = 0;
window.addEventListener("wheel", (e) => {
let currentTime = new Date().getTime();
if(currentTime - lastTime < animationDuration){
e.preventDefault();
return false;
} else {
console.log("in")
lastTime = currentTime;
}
},{ passive: false})

最佳答案

所以我能够找到解决方案。我将尽力解释上面的代码。

所以发生的事情是因为滚动加速,我能够每秒 console.log("in") 但在观察事件 (e) 参数之后我看到e.deltaY每次都比上一个小,所以我只是跟踪“prevDelta”,如果它更小,我就不会调用该函数。

使用 debounce 来恢复 prevDelta。

关于javascript - 使用触摸板时消除滚动加速,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59694394/

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