Chrome“触摸事件API”打破了滚动

问题描述 投票:8回答:1

我注意到,当在触摸屏PC上使用Chrome时,我的网络应用中的页面无法滚动。要测试修复问题,我转到chrome://flags并禁用“Touch Events API”。相反,为了使问题出现在我的开发机器上,我启用它(默认为auto)。

启用Touch Events API后,Chrome的控制台会输出:

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

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

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

问题:

  1. 我不需要任何触摸功能 - 我可以禁用Touch Events API。和/或是最佳做法?
  2. 请问最新版本的jQuery'修复'这个问题吗?我很担心这么大的版本跳...
  3. 阅读违规建议,我应该“考虑将事件处理程序标记为'被动',以使页面更具响应性。” - 那是什么意思?有一些JS函数影响窗口大小和滚动,我怎么能让它们被动?
jquery google-chrome events
1个回答
0
投票

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

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

Warning: Added non-passive event listener to a scroll-blocking 'touchstart' event

© www.soinside.com 2019 - 2024. All rights reserved.