reactjs - 在 REACT 中检测鼠标滚轮事件
问题描述
我使用以下代码检测鼠标滚轮方向:
const onWheelHandler = e => {
const dir = e.deltaY;
if (dir < 0) {
// up
} else if (dir > 0) {
// down
}
}
使用 div:
<div onWheel={e => onWheelHandler(e)}>
// content
</div
无论车轮移动多长时间,我都希望它每次移动只运行一次。
现在这个函数执行每一个轮子的移动,这意味着如果我长时间移动轮子但在同一个动作中它只是继续执行函数,这就是一个问题。
帮助 ?
解决方案
添加一个状态以保存最后一次运动。
const [lastMouvement, setLastmouvement] = useState(null);
const onWheelHandler = e => {
const dir = e.deltaY;
if(lastMouvement === dir){
return;
}
setLastmouvement(dir);
if (dir < 0) {
// up
} else if (dir > 0) {
// down
}
}
推荐阅读
- android - Android Firebase ML-Kit 通过摄像头实时检测条码
- anylogic - 是否可以将启发式算法与 Anylogic 集成?
- javascript - 数组总和,从数据库中获取数据
- node.js - Mongoose/MongoDB 动态依赖 URL 参数
- excel - VBA格式化为会计格式
- javascript - 将 MATLAB 连接到 Firebase 数据库
- javascript - 按特定元素将一个数组的元素排序为另外两个数组
- json - 使用不同的 JSON 模式验证每个 JSON 节点
- php - SQL UNION 2 SELECT 在同一张表上
- google-apps-script - AppScript - 行值更改的自定义函数更新