javascript - D3 双指缩放在 v5 中不起作用,但在 v4 中有效

标签 javascript d3.js zooming

在我的 Mac 上使用两根手指在触摸板上缩放适用于 D3v4:

https://jsfiddle.net/zshktfp9/2/

点击 svg 和缩放效果如我所料。

但是相同的代码在 v5 中不再有效:

https://jsfiddle.net/zshktfp9/4/

它不再在 svg 内缩放,而是整个浏览器缩放。

我在 chrome 和 mac 上的 safari 上试过这个,让一​​个 friend 在 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 - 我不确定如何在启用 mac 捏合缩放时禁用 ctrl + 单击,因此我无法创建拉取请求。

现在你可以通过覆盖过滤器函数来解决这个问题:

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

恢复 v4 行为。

关于javascript - D3 双指缩放在 v5 中不起作用,但在 v4 中有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59972769/

相关文章:

Javascript 正则表达式在 mozilla 和 IE 中的破坏

D3.js:连接选择?

javascript - 过滤json数据并使用过滤后的数据绘制nvd3图表

javascript - echarts: dataZoom slider 不显示正确的数据预览

Javascript 耗时函数观察器

JavaScript 在新窗口中打开,而不是选项卡

javascript - 单击 D3.js 隐藏可见元素

d3.js - 以编程方式缩放后使用鼠标滚轮时 D3.zoom 跳转

ios - 在分页 UIScrollView 中缩放图像

javascript - 通过单击 svg map 显示来自 sql 的数据