问题描述
从 here 可以看出,pointermove
事件无法在 iOS Safari 上使用,这是我的目标用户最常用的浏览器。在 OpenLayers 地图上,我想在悬停在特定图层的功能上时显示工具提示。它在带有 pointermove
的桌面上运行良好,但是为移动设备包含类似行为的最佳做法是什么?在我朝错误的方向做太多事情之前,我需要一些指导
- 我是否应该同时收听
click
或singleclick
事件以包括手机? - 如果是这样,我是否应该只添加两个侦听器并引用同一个回调?
- 如果是这样,我是否应该检查哪个设备触发了事件,以避免(可能?)奇怪的行为?
- 我不确定移动设备对点击的容忍度:我是否应该使用
hitTolerance
的forEachFeatureAtPixel
选项,然后我是否需要以编程方式确保我获得最接近的功能到点击的像素,而不是容差范围内的一些随机像素?
感谢您的帮助:)
解决方法
现在所有主流浏览器都原生支持 Pointer 事件,并且移除了 Openlayers Pointer polyfill since v6.4。如果您的目标是不支持指针事件的旧浏览器,您现在需要在您的应用程序中包含指针事件 polyfill(elm-pep 或 pepjs)。然后,您可以在所有平台上使用 pointermove
事件。