Javascript 使用触摸板时移除滚动加速

Javascript 使用触摸板时移除滚动加速,javascript,html,css,reactjs,Javascript,Html,Css,Reactjs,我希望轮子事件触发一次。但是因为滚动加速每秒钟触发一次。有没有办法停止滚动加速或仅触发一次车轮事件 我使用的是HP笔记本电脑,所有浏览器都会出现这种情况,不过加速率会有一些变化。我还没有检查是否同样的情况发生在物理鼠标上 这是我的代码: let animationDuration = 1000; let lastTime = 0; window.addEventListener("wheel", (e) => { let currentTime = new Date().getTime

我希望轮子事件触发一次。但是因为滚动加速每秒钟触发一次。有没有办法停止滚动加速或仅触发一次车轮事件

我使用的是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})
让animationDuration=1000;
设lastTime=0;
window.addEventListener(“轮子”,(e)=>{
让currentTime=new Date().getTime();
if(currentTime-lastTime
所以我找到了解决方案。我将尽力解释我对上述代码的最佳理解

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


使用去Bounce恢复先前的增量。

因此我能够找到解决方案。我将尽力解释我对上述代码的最佳理解

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

使用debounce恢复prevDelta。

这是一个供参考的站点:我每秒只能刷一次。在这个网站上。我如何实现它?这是一个供参考的网站:我每秒只能刷一次。在这个网站上。我如何实现它?