禁用预测滚动 - 鼠标滚轮 (OnScroll) 事件触发过于频繁(触摸板)

2024-01-10

我正在执行 JavaScriptonScroll。 我的代码适用于任何普通的计算机鼠标,但是当我使用笔记本电脑的触摸板时,我遇到以下情况:

  • 我的鼠标点火(大约 1 到 8)mousewheel手指移动滚轮时发生的事件。
  • 我的触摸板触发次数更多 (~60)mousewheel两根手指触摸触摸板时发生的事件当我的手指再次举在空中后,继续射击。

我从移动触摸设备中了解到这种行为。该功能称为“预测触摸” - 如果您的手指移动在抬起之前有足够的加速度,则滚动会继续。

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

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

/* 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也许是触摸板事件?


为了实现这一点,您必须区分鼠标滚动事件和触摸板事件,而使用 JavaScript 尚无法做到这一点。已经有人提出疑问了如何捕获触摸板输入 https://stackoverflow.com/questions/34448257/how-to-capture-touch-pad-input.

指针事件 https://w3c.github.io/pointerevents/目前处于编辑草稿状态,尚未得到任何浏览器的支持。也可以看看MDN 上的触摸事件文档 https://developer.mozilla.org/en-US/docs/Web/API/Touch_events.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

禁用预测滚动 - 鼠标滚轮 (OnScroll) 事件触发过于频繁(触摸板) 的相关文章

  • 如何将内联 JavaScript 与 Express/Node.js 中动态生成的内容分开?

    对于具有几年 Web 开发经验但没有找到答案的人来说 这是一个有点菜鸟的问题程序员堆栈交换 or Google 我决定在这里问一下 我在用Express网络框架Node js 但这个问题并不特定于任何 Web 框架或编程语言 以下是从数据库
  • Draggable JS Bootstrap 模式 - 性能问题

    对于工作中的项目 我们在 JavaScript 中使用 Bootstrap Modal 窗口 我们想让一些窗口可移动 但我们遇到了 JQuery 的性能问题 myModal draggable handle modal header Exa
  • Bootstrap按钮加载+Ajax

    我正在使用 Twitter Bootstrap 的按钮加载状态 http twitter github com bootstrap javascript html buttons http twitter github com bootst
  • 如何纠正流警告:解构(缺少注释)

    我正在编写一个小型 React Native 应用程序 并且正在尝试使用 Flow 但我无法在任何地方真正获得有关它的正确教程 我不断收到错误 destructuring Missing annotation 有关 station 这段代码
  • 设置 cookie 时中断 JavaScript 执行

    当设置 cookie 时 是否可以始终中断浏览器开发人员工具中的 javascript 执行 无需显式设置 JS 断点 document cookie 在 html head 块的开头添加此代码片段效果很好
  • 调整图像大小并将画布旋转 90 度

    这里有很多关于在 js 上使用画布旋转图像的主题 我阅读了其中的大部分内容 但无法找到解决我的问题的方法 我正在接收任何分辨率的图像 来自上传组件 我将其大小调整为 1024x768 如下所示 var canvas document cre
  • JQuery Mobile 与 MVC 的链接

    我正在使用 ASP NET MVC 3 和 Razor UI 设置 JQuery 移动网站 我正在生成我的链接 例如 a href See Group 2 a 假设我从 Home Index 访问它 我遇到的问题是 当我点击链接时 它会出现
  • 尝试将数据存储在点击器网站中

    我正在尝试存储一个名为的变量score无论何时刷新 您都会一次又一次地使用它 我不明白的是它的代码是什么 我尝试了一些方法 但似乎都不起作用 这是我的答题器网站 但是当我尝试使用 JavaScript 来存储它时 它不起作用window o
  • Firefox 不会在使用 jQuery AJAX 加载的内容上呈现 CSS 样式

    我有一个网站 允许用户对书籍和文章发表评论 主表单有一个搜索输入 用于查找相关书籍或文章 来源 我使用 jQuery 根据输入的搜索词从外部站点动态加载新源 然后还使用 AJAX 返回列表中的源 我有两个问题 现在 在用户输入四个字符后 j
  • 如何解决 Typescript 构建中的错误“找不到模块 'jquery'”

    我目前在 ts 文件的顶部有这个import require jquery 我这样做是因为我试图在我的打字稿文件中使用 jquery 但我似乎无法编译它 因为它返回标题中所述的错误 我正在使用 ASP NET CORE 脚本文件夹 tsco
  • DataTables row.add 到特定索引

    我正在替换这样的行项目 var targetRow entity row dataTable targetRow closest table dataTable DataTable dataTable row targetRow remov
  • Vuejs 2:去抖动不适用于手表选项

    当我在 VueJs 中反跳此函数时 如果我提供毫秒数作为原语 它就可以正常工作 但是 如果我将其提供为对 prop 的引用 它会忽略它 这是道具的缩写版本 props debounce type Number default 500 这是不
  • 可以设置标题样式吗? (并且使用CSS或js?)[重复]

    这个问题在这里已经有答案了 我想知道是否可以设计一个title a href title This is a title Hello a 样式问题有两个方面 文本格式 编码 我猜这是可能的 所以在问题中这样做 工具提示样式 你能把它弄大一点
  • 正则表达式 - 从 markdown 字符串中提取所有标题

    我在用灰质 https www npmjs com package gray matter 以便将文件系统中的 MD 文件解析为字符串 解析器产生的结果是这样的字符串 n Clean er ReactJS Code Conditional
  • 如何使用 crypto-js 解密 AES ECB

    我正在尝试将加密数据从 flash 客户端 发送到服务器端的 javascript 在 asp 中作为 jscript 运行 有几个 javascript Aes 库 但它们实际上没有文档记录 我正在尝试使用 crypto js 但无法让代
  • 用于交互式图形绘制的轻量级 JavaScript 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有兴趣了解用于绘制交互式图表的最轻量级 javascript 库 我掌握的数据主要是与海洋研究相关的科学数据 我知道一些 jquery
  • 从 FileReader 设置背景图像样式

    我正在寻找一种解决方案 允许我从文件上传输入中获取文件并通过设置 document body style backgroundImage 来预览它 以下代码用于在 Image 元素中显示预览 function setImage id tar
  • 在 CKEditor 中设置字体大小和字体系列

    我正在使用 ckeditor 我想问一下这个插件如何设置font family和font size 我尝试过使用 CKEDITOR config font defaultLabel Arial CKEDITOR config fontSiz
  • JavaScript 相对路径

    在第一个 html 文件中 我使用了一个变量类别链接 var categoryLinks Career prospects http localhost Landa DirectManagers 511 HelenaChechik Dim0
  • 如何在react-highcharts中使用图表工具提示格式化程序?

    如何使用图表工具提示格式化程序 我正在使用高图表的反应包装器 我有这样的配置 const CHART CONFIG tooltip formatter tooltip gt var s b this x b each this points

随机推荐

  • C#:有关套接字编程(同步或异步)的问题

    我正在用 C 编写一个即时消息服务器用于学习目的 我的问题是我应该使用同步还是异步套接字来处理 IM 客户端 目标是处理尽可能多的客户 我不太确定 但据我所知 异步套接字的数据包不会按顺序到达 这意味着当您发送 2 条聊天消息并且存在延迟
  • 伊莎贝尔证明加法的交换律

    我试图证明 Isabelle HOL 中自定义的交换律add功能 我设法证明了关联性 但我坚持这一点 的定义add fun add nat nat nat where add 0 n n add Suc m n Suc add m n 关联
  • GORM 使用 hasMany 映射同一类的两个属性

    我有以下内容 class Match Team localTeam Team visitingTeam class Team static hasMany matches Match 抛出 加载插件管理器时出错 类 class myapp
  • 如何以编程方式/使用注释将代码节的语法突出显示设置为特定语言?

    我有一个 Laravel Blade 模板 blade php 其中包含纯 JavaScript 作为部分 稍后将其插入到通用包装器中 所以这个例子是 div Some HTML content div section js var a b
  • Android 广播到特定的第三方应用程序

    我开发了一个 Android 应用程序 它发送具有自定义权限的广播 public abstract void sendBroadcast Intent intent String receiverPermission 现在 任何具有广播接收
  • 在fortran中解析输入文件

    这是我前辈的延续thread https stackoverflow com questions 21409601 reading input file in fortran 我有一个来自不同代码的文件 我应该parse用作我的输入 其中的
  • 在mysql中选择不同的列字段和总和

    我有下表 topic id unique forum id forum views 1002 1885 5 1003 1893 2 1004 1885 3 1005 1892 6 我怎样才能得到这样的输出 具有上表中论坛总浏览量的唯一for
  • 计算一行中 NULL 的数量

    有没有办法获取指示行中 NULL 字段数量的列 这将在 SELECT 语句中 例如 Field1 Field2 Num Null NULL A 1 更新 我想要这个查询 这样我就可以根据给定书籍的附属销售数量进行排序 因此 无论是哪一个 拥
  • 函数声明语法:函数名前括号内的内容

    很抱歉我无法在问题标题中提供更具体的信息 但我正在阅读一些内容Go https golang org 代码和我遇到了这种形式的函数声明 func h handler ServeHTTP w http ResponseWriter r htt
  • 如何实现浮动在内容视图上的覆盖按钮

    in some iPhone apps i saw a button which was floating over the content view eg in the app EyeEm When the user is scrolli
  • 使用 MSAL 身份验证令牌使用 Web API 2

    我有一个 ASP Net Web API 2 我在其中实现了以下安全性 https learn microsoft com en us azure active directory develop active directory devq
  • R Markdown 演示:如何在幻灯片上继续编号列表?

    假设我想创建这个编号列表 sed ut perspiciatis unde omnis iste natus 错误 可爱卡通小猫矢量素材下载 非凡图库 Neque porro quisquam est qui dolorem ipsum q
  • Git 对象 SHA-1 是文件内容还是文件名?

    我对文件的实际内容如何存储在 git 中感到困惑 例如Version 1是实际的文本内容test txt 当我将其提交 第一次提交 到存储库时 git 返回该文件的 SHA 1 该文件位于 git objects 0c 15af113a95
  • 如何从sql查询中获取时间(hh:mm:ss)?

    我有带有日期字段的数据库 我看到的时间是这样的 1900 01 01 13 38 00 000 我如何将其格式化为 13 38 SELECT convert varchar getdate 108 输出为hh mm ss
  • 为什么事件处理程序只能在 IHttpModule 初始化期间绑定到 HttpApplication 事件?

    这只是另一个 在开发服务器中工作 为什么不在 IIS 中工作 类型的问题 我使用 NHibernate 创建了一个不错的 DAL 作为此处描述 https stackoverflow com questions 2717379 is thi
  • Getdate(),-1 天

    我不明白为什么 但不知何故这个查询不起作用 我想采用系统日期 1 天 其中 sysdate 比当前日期小 1 天 WHERE a SEND Date gt dateadd DD 1 CAST getdate as date as datet
  • Windows 汇编语言编程

    有人可以指出有关此主题的一些最新资源吗 像任何东西一样进行搜索 但大多数像 Iczelion 这样的 Tutos 已有十年历史 不再流行 不再是最新的 并不意味着该信息毫无用处 几乎所有关于 Win32 汇编语言的信息仍然适用 即使 Win
  • VS2012不运行单元测试

    几周前 我正在进行单元测试 它们正在按预期构建和运行 我休假了一个星期 今天早上启动了我的机器 并且没有对单元测试项目进行任何代码更改 测试就不再运行 当我说 测试不再运行 时 我并不是说它们失败了 而是说它们失败了 他们确实不会跑 我尝试
  • 如何将日期字符串与 Excel 中的日期进行转换和比较

    7 29 2011 12 58 00 PM gt NOW 我希望这个表达式返回 FALSE 但它返回 TRUE 我知道我可以将日期时间分解为日期和时间 然后将它们加在一起 如下所示 DateValue 7 29 2011 TimeValue
  • 禁用预测滚动 - 鼠标滚轮 (OnScroll) 事件触发过于频繁(触摸板)

    我正在执行 JavaScriptonScroll 我的代码适用于任何普通的计算机鼠标 但是当我使用笔记本电脑的触摸板时 我遇到以下情况 我的鼠标点火 大约 1 到 8 mousewheel手指移动滚轮时发生的事件 我的触摸板触发次数更多 6