4

我正在尝试从 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);

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

4

3 回答 3

5

要阻止任何将来缩放转换页面,请删除侦听器:

zoom.on("zoom", null)

要撤消以前的缩放转换:

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

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

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

如果两者都不起作用/不是您想要的,那么发布问题的工作示例将非常有帮助。您可能还想查看缩放文档

于 2013-09-02T05:11:41.200 回答
1

我发现的另一种工作方式是设置缩放的范围和.extent宽度translateExtent和高度元素(从而完全禁用缩放)。当然要设置scaleExtent为 [1,1]。

于 2020-07-06T08:21:39.010 回答
0

尝试

userMapSvg.on(".zoom", null);
于 2016-04-11T05:30:31.267 回答