CSS touch-action:在 Cordova 应用程序中并不总是禁用
Posted
技术标签:
【中文标题】CSS touch-action:在 Cordova 应用程序中并不总是禁用【英文标题】:CSS touch-action: not always disabling in Cordova app 【发布时间】:2018-10-13 02:31:09 【问题描述】:问题
我在我的 CSS 中缺少什么以使我的 Cordova 应用程序中的无触摸操作的结果更加一致?
我正在使用 Cordova 构建一个应用程序(在 android 上测试)。我们有一个不应该滚动的完整页面选择,所以我在 CSS 中使用了
touch-action: none
。但它仍然滚动,但只是有时。
CSS
body
touch-action: none;
现在我通过打开/关闭 html 中的不同 div 来显示不同的“页面”。让我超级困惑的是,当它进入第一页时,它会滚动......一次!而且只有一次。所以我可以点击屏幕并向上/向下拖动页面,放开我就不能再滚动了。
但是。 我转到第二页,它会做同样的事情。它会让我滚动一次,但任何进一步的触摸事件都会被忽略。
这个问题是我喜欢的 html 选择器受此影响。它可以在哪里工作,但定期允许页面在不应该滚动的时候滚动。
我的理解是“touch-action: none”应该杀死 Android 上的所有触摸事件,而不仅仅是其中的一些。
【问题讨论】:
【参考方案1】:经过更多的挖掘,我能够解决这个问题。
快速回答。 touch-action: none;
完全没问题。
我使用 Chrome 的远程开发人员工具连接到设备并观看控制台并不好。查看应用程序在运行时发生了什么。因为您可以通过开发人员工具触摸应用程序,所以我猜它正在设法搞砸触摸事件。就像忽略touch-action:none
并强制触摸动作发生一样。即使您通过开发人员工具仅触摸了真实设备而不是设备“sim”,它仍然会搞砸触摸事件。
所以解决方案。您可以使用开发人员工具来确保您已正确添加 css。然后关闭设备的开发人员工具并使用cordova run android
在cordova 中再次运行它,并且不要使用开发人员工具进行连接。
我花了两个工作日试图解决这个问题。 :(
【讨论】:
以上是关于CSS touch-action:在 Cordova 应用程序中并不总是禁用的主要内容,如果未能解决你的问题,请参考以下文章
chrome 手机端滑动列表的时候控制台会出现很多提示的解决办法
Unable to preventDefault inside passive event listener due to target being treated as passive. See h
解决移动端报错:Unable to preventDefault inside passive event listener due to target being treated as……
解决移动端报错:Unable to preventDefault inside passive event listener due to target being treated as……(代码片段