禁用预测滚动-鼠标滚轮(OnScroll)事件触发次数过多(触摸板)

格拉比希·鲁尔兹

我正在执行Javascript onScroll我的代码对任何普通的计算机鼠标都适用,但是当我使用笔记本的触摸板时,会遇到以下情况:

  • mousewheel当手指移动滚轮时,我的鼠标触发(大约1到8个)事件。
  • mousewheel当两个手指触摸触摸板时,我的触摸板会触发更多(〜60)事件,并且在我的手指再次悬空后继续触发。

我从移动触摸设备知道这种行为。该功能称为“ Predictive Touch”(预测触摸)-如果在抬起手指之前,手指的移动具有足够的加速度,则滚动将继续。

我认为触摸板驱动程序正在设置此“平滑滚动”行为。

为了调试这种情况,我使用了以下代码:

/* Handle Mouse-Wheel Scrolling */
var lastChange = +new Date();
$(window).bind('mousewheel',    function(e){
    console.log("mw");
    if(+new Date() - lastChange > 1000){
        console.log("mw allowed");
        if(e.originalEvent.wheelDelta > 0)  {/*go to previous*/}
        else{   /*go to next*/}
        lastChange = +new Date();
    }
return false;});

这是一个简单的代码,每秒钟“允许”鼠标滚动事件。

如果我快速进行触摸板滚动,则将mousewheel触发事件约300次。一秒钟的条件是让3个事件发生。我的手指在触摸板上的时间不到一秒钟。

通过此测试,我发现mousewheel即使我的手指已经离开触摸板事件仍会触发(几乎连续3秒)。

是否有Javascript函数或解决方法/技巧/黑客来避免此行为?

有点像onTouchEnd触摸板事件吗?

MichałPerłakowski

为此,您必须区分鼠标滚动事件和触摸板事件,但使用JavaScript尚不可能。已经有人问过如何捕获触摸板输入

指针事件当前处于“编辑草稿”状态,尚不受任何浏览器支持。另请参阅MDN上的touch events文档

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

鼠标滚轮事件触发次数过多/许多滚动会中断动画

来自分类Dev

鼠标滚轮事件触发次数过多/许多滚动会中断动画

来自分类Dev

浏览器中的鼠标滚轮/触摸板滚动

来自分类Dev

如何从触摸板获取鼠标滚动?

来自分类Dev

使用鼠标时禁用触摸板

来自分类Dev

使用鼠标时禁用触摸板

来自分类Dev

计算鼠标滚轮滚动事件发生的次数

来自分类Dev

GWT禁用滚动面板的鼠标滚轮滚动

来自分类Dev

触摸板不支持自然滚动,鼠标会

来自分类Dev

闲置时在Xorg中禁用鼠标(非触摸板!)

来自分类Dev

闲置时在Xorg中禁用鼠标(非触摸板!)

来自分类Dev

在 Firefox 中的伪造查看器内禁用触摸板滚动页面滚动

来自分类Dev

禁用触摸板的加载

来自分类Dev

如何禁用触摸板?

来自分类Dev

在scrollviewer wpf中禁用鼠标滚轮滚动

来自分类Dev

主体溢出:隐藏禁用鼠标滚轮滚动

来自分类Dev

禁用鼠标滚轮上下滚动

来自分类Dev

禁用鼠标滚动网页

来自分类Dev

检测何时从触摸板上移开手指,但由于“预测性触摸”而仍然发生滚动-JS

来自分类Dev

禁用突触触摸板上的3和4指滚动

来自分类Dev

如何使用synclient命令在触摸板上禁用左边缘滚动?

来自分类Dev

JavaScript鼠标滚轮事件滚动

来自分类Dev

Kubuntu仅自然滚动触摸板,但不适用于鼠标

来自分类Dev

Kubuntu仅自然滚动触摸板,但不适用于鼠标

来自分类Dev

连接USB鼠标时如何禁用上网本的触摸板

来自分类Dev

如何在Windows Precision触摸板上禁用鼠标加速?

来自分类Dev

GNOME:连接外部鼠标时禁用触摸板(跨会话保留dconf设置)

来自分类Dev

反向滚动突触触摸板

来自分类Dev

Chrome无法使用触摸板滚动

Related 相关文章

热门标签

归档