【问题标题】:Filtering a mousemove event from Mobile Safari long press从 Mobile Safari 长按中过滤 mousemove 事件
【发布时间】:2013-09-02 07:00:29
【问题描述】:

我目前正在为多个浏览器构建一个支持触摸的滑块小部件。所以,我有 touchstart、touchend、touchmove、mousedown、mousemove 和 mousedown 的监听器。除了在 Mobile Safari 上,它运行良好。

如果我长按我的目标,鼠标移动事件会触发,上一次触摸的坐标会导致抖动。

如何防止或过滤掉这个 mousemove 事件而不导致桌面交互问题?

【问题讨论】:

    标签: javascript touch mobile-safari mousemove


    【解决方案1】:

    移动 safari 中长按的事件顺序是 touchstart、mousemove、touchend。这不同于有效的鼠标移动(mousedown、mousemove、mouseup)和有效的触摸(touchstart、touchmove、touchend)。如果您为所有有效事件调用 prevent default,您将不会收到额外的通知。因此,如果您跟踪滑块的移动独立于响应触摸的移动,则 mousemove 发生在正常序列之外,可以安全地忽略。

    【讨论】:

      【解决方案2】:

      你考虑过使用 Swipe JS 吗? http://swipejs.com/

      【讨论】:

      • 不,应用程序实际上是在 GWT 中实现的。但这不是 GWT 特有的问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-23
      • 2015-12-29
      • 2020-09-08
      • 1970-01-01
      相关资源
      最近更新 更多