【问题标题】:Pointerup event isn't working correctly with Windows Phone 8.1 / IE11Pointerup 事件在 Windows Phone 8.1 / IE11 中无法正常工作
【发布时间】:2016-03-20 06:00:05
【问题描述】:

pointerup 事件在 Win Windows Phone 8.1 和 Internet Explorer 11 中无法正常工作。我的意思是,它是自动触发的(就在指针按下之后),而不是在手指伸出时触发。

我已经完成了 example here

如果您使用桌面浏览器或 Android-Chrome 或 iOS-Chrome/Safai 测试它是否正常工作

有没有人可以解决这个问题?

【问题讨论】:

  • 用诺基亚 Lumia 625 测试。

标签: windows-phone windows-phone-8.1 internet-explorer-11


【解决方案1】:

您收到pointercancel 事件了吗?

如果您没有正确设置touch-action,则pointercancel 会在pointerdown 之后立即发送。我认为这是因为浏览器认为已经启动了滚动等操作。

为了避免这种情况,我们使用:

html.is-pointer-events .touch-grip {
    -ms-touch-action: none;
    touch-action: none;
}

请注意,我们在使用 Microsoft 指针事件时激活此规则,否则 touch-action 属性会干扰其他浏览器(例如 Chrome)。

如果navigator.msPointerEnabled 为真,我们将is-pointer-events 添加到document.documentElement.className(即,当我们使用onpointerdown 而不是ontouchstart 时添加类)。如果您使用的是modernizr.js,那么它看起来提供了一个您可以使用的pointerevents 类。

除非您对它们有迫切的需求,并且您有能力为此投入大量资金,否则我强烈建议您不要支持 Microsoft 指针事件。对我们来说,支持它们一直是我们头疼的问题,而返回的价值对我们来说是微乎其微的。

【讨论】:

  • 谢谢!我试试看:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多