我正试图从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);
哪个不起作用。它只会切换事件。
答案 0 :(得分:4)
要停止任何将来缩放转换页面,请删除侦听器:
zoom.on("zoom", null)
撤消之前的缩放转换:
zoom.scale(1).translate([0,0]).event(userMapSvg)
http://bl.ocks.org/1wheel/6414125
bl.ocks顶部的按钮显示两种行为。
如果您的工作都不是您想要的,那么发布问题的工作示例将非常有帮助。您可能还想查看zoom documentation。
答案 1 :(得分:0)
我发现的另一种工作方式是将缩放的范围以及.extent
和translateExtent
设置为width和height元素(从而完全禁用缩放)。当然,将scaleExtent
设置为[1,1]。