【问题标题】:D3 remove 'zoom' completelyD3 完全删除“缩放”
【发布时间】:2013-09-01 09:53:38
【问题描述】:

我正在尝试从 svg 中完全删除缩放。

zoom = d3.behavior.zoom()
    .x(userNodesScaleX)
    .y(userNodesScaleY)
    .on("zoom", zoomed);
userMapSvg.call(zoom);

这在 SVG 的顶部添加了一个“rect.background”,以防止鼠标事件到达 SVG 中的其他元素。

所以我决定完全取消缩放。删除事件,删除该矩形。我该怎么做?

当前代码是

removeZoom = d3.behavior.zoom()
    .on("zoom", null);

这是行不通的。它只会切换事件。

【问题讨论】:

    标签: javascript svg d3.js zooming


    【解决方案1】:

    要阻止任何未来的缩放转换页面,请移除监听器:

    zoom.on("zoom", null)
    

    要撤消以前的缩放转换:

    zoom.scale(1).translate([0,0]).event(userMapSvg)
    

    http://bl.ocks.org/1wheel/6414125

    块顶部的按钮显示这两种行为。

    如果两者都不起作用/不是您要查找的内容,那么发布该问题的有效示例将非常有帮助。您可能还想查看zoom documentation

    【讨论】:

    • 恐怕不是,@Adam。我完全按照问题中提到的那样使用它。
    • NAZIK & rink.attendant - 'zoom.on("zoom", null)' 是对这个问题的回答,请参阅链接了解它的作用。
    • 这个selection.on(".zoom", null); 为我工作(注意缩放字符串前的点)
    【解决方案2】:

    我发现另一种可行的方法是将缩放范围和.extenttranslateExtent 设置为宽度和高度元素(从而完全禁用缩放)。当然,将scaleExtent 设置为 [1,1]。

    【讨论】:

      【解决方案3】:

      试试

      userMapSvg.on(".zoom", null);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-07
        • 2020-06-13
        • 1970-01-01
        • 1970-01-01
        • 2012-01-05
        • 1970-01-01
        相关资源
        最近更新 更多