Chrome“触摸事件 API”中断滚动

Chrome "Touch Events API" breaks scrolling

提问人:Warren 提问时间:5/8/2017 最后编辑:CommunityWarren 更新时间:1/3/2018 访问量:1871

问:

我注意到,在触摸屏 PC 上使用 Chrome 时,我的 Web 应用程序上的页面无法滚动。为了测试解决问题,我转到并禁用“触摸事件 API”。相反,为了使问题出现在我的开发机器上,我启用了它(默认值为 auto)。chrome://flags

启用触摸事件 API 后,Chrome 的控制台会输出:

[违规]向滚动阻塞事件添加了非被动事件侦听器。请考虑将事件处理程序标记为“被动”,以使页面更具响应性。touchstart

[违规]向滚动阻塞事件添加了非被动事件侦听器。请考虑将事件处理程序标记为“被动”,以使页面更具响应性。touchmove

此违规行为来自我的文件。版本为 2.1.3。jquery.min.js

问题:

  1. 我不需要任何触摸功能 - 我可以禁用触摸事件 API 吗? 和/或这是最佳实践吗?
  2. 最新版本的jQuery会“解决”这个问题吗?我担心这么大的版本跳跃......
  3. 阅读违规建议,我是否应该“考虑将事件处理程序标记为'被动',以使页面更具响应性。有一些 JS 函数会影响窗口大小和滚动,我怎样才能使它们被动?
jquery google-chrome 事件

评论


答:

0赞 ClosDesign 1/3/2018 #1

你有我们可以测试的 JSFiddle 或代码示例吗?我想知道您的代码中是否有问题。

如果您有更多问题,您可能还想查看此问题中的解决方案。可能是一个简单的修复,也可能是需要编写自己的 PassiveEvent 处理程序。

警告:将非被动事件侦听器添加到阻止滚动的“touchstart”事件