参考 Chrome 模拟设备分辨率和触摸事件的能力:https : //developer.chrome.com/devtools/docs/device-mode
实际问题:
'ontouchstart' in document.documentElement
Run Code Online (Sandbox Code Playgroud)
在设备仿真模式下返回false(当它实际上能够执行触摸事件时)。因此,我需要一个设备模式仿真的例外。
您需要ontouchstart在窗口中检查。不是 document.documentElement。
将通过以下方式检测触摸事件:
'TouchEvent' in window && 'ontouchstart' in window
Run Code Online (Sandbox Code Playgroud)
我应该提到我不包括window.DocumentTouchModernizr 使用的方法。它仅适用于 Firefox < 25,并且 Mozilla 在 Windows 上放弃了 Touch Metro UI。所以我看不到任何合理或相关的浏览器使用来真正证明它的合理性。虽然TouchEvent in window不是必需的,但我认为检查 API 的存在也更有利于未来的证明和技术上的正确。
有关触摸事件检测的更多详细信息,请参阅最新的Modernizr 触摸事件功能检测,并在评论中提供链接和参考。
| 归档时间: |
|
| 查看次数: |
2833 次 |
| 最近记录: |