【问题标题】:Pointermove does not fire for touch on IEPointermove 不会触发 IE 上的触摸
【发布时间】:2018-07-04 01:21:05
【问题描述】:

我想在 IE11 上收听 pointermove 事件,但似乎 pointermove 仅在鼠标(可能还有笔)时触发,但在您使用手指时不会触发。

http://jsfiddle.net/qq2hjL2g/

实际上,specification 表示它会触发笔/鼠标,所以这可能不是真正的错误。

但是,有什么方法可以在 IE 上收听 pointermove 的触控功能吗?肯定有,但我很惊讶pointermove 根本没有开火。

编辑:我发现如果我将 CSS touch-action: none 放在 div 上,pointermove 事件就会触发。但为什么?我正在尝试查找与此相关的文档,但到目前为止我找不到任何文档。

编辑:我了解到touch-action CSS 指定了浏览器处理哪些触摸动作。这意味着将touch-action 设置为none 告诉浏览器处理任何触摸事件,开发人员负责通过JavaScript 事件控制行为。这就是为什么我只有在拥有 CSS 时才能正确触发事件。 (在MDN 上查看更多信息。)

【问题讨论】:

  • 感谢您的编辑。这真的救了我。在我们的应用程序中,无论出于何种原因,在 IE11 中,onmousemove 在我们的签名框中的 onmousedown 之前触发,这当然会炸毁一切。使用那个 touch-action: none 然后使用 onpointerdown 和 onpointermove 工作。谢谢!

标签: javascript


【解决方案1】:

我也在尝试与 IE11 touch 交互。 我相信 MSGesture 用于触摸事件,因为在他们的文档中它们指的是“手指”

http://msdn.microsoft.com/en-us/library/windows/apps/hh465856.aspx

http://msdn.microsoft.com/en-US/library/ie/hh968249.aspx

我相信您感兴趣的手势是: MSGestureStart - “当屏幕被触摸到该元素上方的位置时触发。”

MSGestureChange - “当与交互关联的手指位置在屏幕上移动时触发。”

MSGestureEnd - “当所有关联的联系人从表面移除时触发此事件”

【讨论】:

  • 我还没有尝试过,但看起来很有希望。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多