我正在开发一个带有悬停导航的项目。
由于支持触摸的设备的性质,它们并不真正支持悬停。对于 iOS 和 android,我设法禁用了所有悬停效果并通过“touchstart”事件模拟它们,该事件设置了正确的 css 属性。这就像一个魅力。如果是“touchstart”事件,则它是移动设备,否则可能是桌面。
不幸的是,Internet Explorer 实现了自己的事件,即“MSPointerDown”等。
我的问题是,两个 IE 版本(最新的移动版和桌面版)都会触发一个“click”事件,以及两个“MSPointerDown”事件,一个是 pointerType“touch”,一个是 pointerType“mouse”。我真的不知道如何找出动作是真正的触摸事件还是由鼠标引起的,因为两者都被触发了。我想避免基于媒体查询的解决方案,因为大型触摸屏越来越受欢迎。