d3的缩放变焦在IE / Edge中不起作用?

时间:2017-10-17 13:17:14

标签: javascript css d3.js touch

我在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?

1 个答案:

答案 0 :(得分:1)

在d3页面上似乎有一个长期的错误报告(从2013年开始):

https://github.com/d3/d3/issues/989

从源代码看,d3使用事件touchstart.zoomtouchmove.zoomtouchend.zoomtouchcancel.zoom

根据我在互联网上找到的内容,IE不支持这些触摸事件at all,而Edge仅支持if the device doesn't have a keyboard。如果是,则需要enabled manually

因此,您无法依靠IE或Edge中的d3正确处理触摸事件。

但是有很多polyfill旨在纠正这个问题。由于我没有任何支持触控的Windows设备,因此我无法测试其中任何一项是否正常工作,但可能会尝试这些: