JS中的触摸板滚动检测,没有库

Touchpad scroll detection in JS, no library

本文关键字:检测 滚动 触摸 JS      更新时间:2023-09-26

我正在制作我自己的小Javascript库,它可以很容易地用自定义滚动条替换您(和我的)网站的默认滚动条。这部分意味着给BODY元素一个"overflow:hidden"样式来隐藏正常的滚动条。然而,这会阻止所有滚动,除了在代码中进行的滚动。

在显示栏和点击/拖动时滚动栏方面,我已经做好了一切准备。然而,许多触摸板(就像我正在测试的电脑上一样)都有一个功能,你可以通过在触摸板的右侧滑动手指来滚动。我需要库不要破坏它,所以我需要一些方法来检测用户何时试图以这种方式滚动。

我以为浏览器会把它解释为鼠标滚轮,所以我设置了一个onmousewheel事件,但这似乎根本没有捕捉到它。为了记录在案,我正在测试Firefox 25.0.1。

有没有任何方法可以捕捉trackpack滚动,最好没有外部库?我试图尽可能地保持它的独立性和轻量级,但如果我绝对需要的话,我想我可以使用jQuery及其鼠标滚轮扩展。。。

有些浏览器使用onwheel事件而不是onmousewheel。所以,听这两个事件通常是个好主意。

有关onwheel的更多信息,请参阅这篇MDN文章。