使用两根手指在Mac上的触摸板上缩放可在D3v4上使用:
https://jsfiddle.net/zshktfp9/2/
单击svg并按预期进行缩放。
但是相同的代码在v5中不再起作用:
https://jsfiddle.net/zshktfp9/4/
它不再在svg内缩放,而是整个浏览器缩放。
[我在chrome和safari上在Mac上进行了尝试,并让一个朋友在Windows chrome上对其进行了测试,在v4和v5之间也发生了功能上的相同中断。
var zoom = d3.zoom()
.scaleExtent([1, 10])
.on("zoom", function() { grp.attr("transform", d3.event.transform) });
svg.call(zoom);
据我所知,没有发现我在v5中应该做的与众不同。我是否缺少某些东西,或者这是D3.js中的错误?
[我认为这可能是一个错误,所以我提交了https://github.com/d3/d3-zoom/issues/204-我不确定如何在启用macpinch-to-zoom的同时禁用ctrl +单击,因此我无法创建拉取请求。
目前,您可以通过覆盖过滤器功能来解决此问题:
d3.zoom().filter(() => !d3.event.button)...
将恢复v4行为。