【发布时间】:2018-01-16 03:09:07
【问题描述】:
我有一个可以缩放的 SVG,还有一个“重置”按钮。我正在使用
重置缩放zoom.transform(selection, d3.zoomIdentity)
这会按预期工作并重置 SVG 上的缩放。但是如果我再次缩放,它会缩放回最后一个状态。例如。我滚动,按“重置”按钮,然后缩小 -> SVG 被放大。如何重置 zoom 对象的内部缩放状态?尝试了不同的解决方案,但都没有奏效。
这里是完整的缩放代码
//zoom cannot be done on the <svg> directly
var container = d3.select("#g5063")
var zoom = d3.zoom().
scaleExtent([0.7, 8]).
on("zoom", () => {
container.attr("transform", d3.event.transform)
})
$("#reset-zoom-button").click(() => {
zoom.transform(container, d3.zoomIdentity);
})
var svg = d3.select("#svg").call(zoom)
【问题讨论】:
-
stackoverflow.com/q/48790190/2506522 的副本,但这是较新的,但有解决方案
-
下面的解决方案对我有用,而上面链接的解决方案对我不起作用。
标签: javascript d3.js svg zooming