【问题标题】:event.touches detecting multiple touch events after touch screen spamevent.touches 在触摸屏垃圾邮件后检测多个触摸事件
【发布时间】:2015-11-29 12:32:12
【问题描述】:

我正在为一个使用触摸屏作为交互输入的展览构建一个 Web 应用程序。如果用户决定向屏幕发送垃圾邮件(疯狂地),event.touches 会在一段时间后相信一次触摸(一根手指)包含多个触摸事件。即使我刷新网页(f5 / shift-f5 产生相同的结果),它仍然会告诉我单指触摸是在几个不同位置的触摸。完全重置它的唯一方法似乎是完全重启浏览器。

网络应用是为 Chrome 构建的。

有人知道是什么原因造成的,以及如何预防吗?如果触摸点超过 5(以防止更多触摸),我尝试使用指针事件放置 100% 屏幕大小的覆盖层(以防止更多触摸),但即便如此 Chrome 也会注册触摸并变得很糟糕。

提前致谢!

编辑:该错误不会出现在 Chrome 的 Metro/Windows 8 模式中。但是,Metro Chrome 不尊重--kiosk,导致它在展览中无法使用。

【问题讨论】:

  • 真的只是在黑暗中拍摄,但您是否尝试过运行 d3.timer.flush()?听起来可能拥有触摸行为的功能正在重新初始化,但以前的实例没有被 GC,因为这些实例设置了来自计时器的回调。例如,您可以在强制布局中获得它。
  • 谢谢!我会尽快尝试。但是,刷新时不应该重置所有 d3 事件/计时器/调用/等吗?
  • 这是可取的,但计时器队列非常轻,因为它是热代码,但有时它可能有点太轻了。有一个open issue on this 将在未来的版本中修复。更详细的解释here
  • 不幸的是,它没有帮助。还是谢谢你。 :)
  • 是的,好的,就像我说的:在黑暗中拍摄。您可以发布一些代码或提供指向工作站点的链接吗?

标签: javascript jquery html google-chrome d3.js


【解决方案1】:

更新到 Windows 10 解决了这个问题。

【讨论】:

    猜你喜欢
    • 2021-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-15
    • 1970-01-01
    • 2013-03-26
    • 1970-01-01
    相关资源
    最近更新 更多