D3如何防止双击缩放?

5

我有一个D3网络图表,我想禁用双击缩放功能。我已经使用以下代码实现了缩放:

    var zoom = d3.behavior.zoom().scaleExtent([minZoom, maxZoom]);
    zoom.on("zoom", function() {
            g.attr("transform", "translate(" + d3.event.translate + ")scale(" + d3.event.scale + ")");
        });
   svg.call(zoom)

然而,我似乎无法仅禁用双击缩放。当我使用下面的代码时,它会完全禁用缩放。

var zoom = d3.behavior.zoom().scaleExtent([minZoom, maxZoom]);
zoom.on("zoom", function() {
            g.attr("transform", "translate(" + d3.event.translate + ")scale(" + d3.event.scale + ")").on("dblclick.zoom", null);
        });
   svg.call(zoom)

我已经尝试过调用。
    .on("dblclick.zoom", null)

我尝试在SVG元素本身上运行,但也无法正常运行。非常感谢您的帮助。


1
你看过这个问题吗?dblclick.zoom应该有效。 - Lars Kotthoff
1
是的,我有,但似乎对我不起作用。谢谢。 - Caleb Bramwell
2
对我来说很好用,随机的jsfiddle:http://jsfiddle.net/SD5cK/14/ - Lars Kotthoff
1个回答

29
你需要调用
    .on("dblclick.zoom", null)

之后

    svg.call(zoom)
也就是说。
    svg.call(zoom).on("dblclick.zoom", null);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接