cub*_*fox
6
html
javascript
google-chrome
当我尝试获取用户的滚动速度时,我在 Mac 和 Windows 之间得到不一致的结果。
重现
- 打开此代码沙盒
- 使用鼠标,向下滚动 1 个“刻度”(使用不具有平滑滚动功能的鼠标)
问题
使用完全相同的硬件(鼠标/显示器)和浏览器(chrome):
- 在 Windows 上我得到的值为125
- 在 Mac 上我得到的值约为12
我需要一种方法来了解用户滚动的速度,从而为所有操作系统提供可比较的结果。
更多背景信息
- 这适用于“无限画布”类型的应用程序(如tldraw)。我想当用户向后滚动时“缩小”,当用户滚动时“放大”。
- 我想使用滚动速度(而不仅仅是滚动方向),因为否则感觉很笨拙
- 我知道这是可能的,因为Figma可以根据鼠标滚轮速度进行放大/缩小。虽然他们使用 webgl 所以不确定他们是否可以访问正常轮子事件没有的属性
- 我不能简单地检查 deltaY 是否 > 100,因为在 mac 上,当用户快速滚动时 deltaY 可能会超过 100
- 我尝试了这个问题的所有解决方案。它们都不能跨 mac/windows 运行