我在official documention of d3.zoom
中找不到相关信息,但显然在某个区域进行缩放缩放在Google Chrome和Mozilla Firefox中有效,但在Microsoft Internet Explorer或Edge中无效。这可以在其中一个官方演示中看到:https://bl.ocks.org/mbostock/d1f7b58631e71fbf9c568345ee04a60e
当在IE11 / Edge中进行捏拉缩放时,会触发页面缩放,可以使用-ms-content-zooming: none
(奇怪的是不是touch-action
)禁用页面缩放,但这不是我想要的。
我的评估是否正确?有什么可以做的吗?可能存在一些polyfill?
答案 0 :(得分:1)
在d3页面上似乎有一个长期的错误报告(从2013年开始):
https://github.com/d3/d3/issues/989
从源代码看,d3使用事件touchstart.zoom
,touchmove.zoom
,touchend.zoom
和touchcancel.zoom
。
根据我在互联网上找到的内容,IE不支持这些触摸事件at all,而Edge仅支持if the device doesn't have a keyboard。如果是,则需要enabled manually。
因此,您无法依靠IE或Edge中的d3正确处理触摸事件。
但是有很多polyfill旨在纠正这个问题。由于我没有任何支持触控的Windows设备,因此我无法测试其中任何一项是否正常工作,但可能会尝试这些: