D3缩放以进行缩放在v5中不起作用,但在v4中起作用

问题描述 投票:1回答:1

使用两根手指在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中的错误?

javascript d3.js zoom
1个回答
0
投票

[我认为这可能是一个错误,所以我提交了https://github.com/d3/d3-zoom/issues/204-我不确定如何在启用macpinch-to-zoom的同时禁用ctrl +单击,因此我无法创建拉取请求。

目前,您可以通过覆盖过滤器功能来解决此问题:

d3.zoom().filter(() => !d3.event.button)...

将恢复v4行为。

© www.soinside.com 2019 - 2024. All rights reserved.