2017-10-17 78 views
2

我在official documention of d3.zoom中找不到关于此的信息,但显然,缩放区域在Google Chrome浏览器和Mozilla Firefox浏览器中确实有效,但不适用于Microsoft Internet Explorer或Edge。这已经可以看到在官方演示的一个:https://bl.ocks.org/mbostock/d1f7b58631e71fbf9c568345ee04a60ed3的捏到缩放不适用于IE/Edge?

当IE11 /边缘然后代替页面缩放将触发可禁用做双指缩放使用-ms-content-zooming: none(奇怪的是没有touch-action),但不是我想要的。

我的评价正确吗?有什么可以做的吗?也许有些polyfill存在?

回答

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正确处理。

但是有相当多的polyfills旨在纠正这个问题。因为我没有任何触摸功能的Windows设备我无法测试,如果任何一个正常工作,但也许尝试那些:

+0

指针事件似乎是唯一的出路(另请参阅https://github.com/d3/d3/issues/1439,包括最后的评论),但遗憾的是没有更多的工作可以从d3的si de(https://github.com/d3/d3/pull/2403),它可能可以像https://mdn.github.io/dom-examples/pointerevents/Pinch_zoom_gestures.html – phk