【发布时间】:2025-12-15 07:15:02
【问题描述】:
我使用 dagre 和 d3 来显示图表。可以拖动和缩放图形元素和视口。每当我重绘图形(或绘制另一个图形)时拖动/缩放视口后,视口会保持在之前设置的位置,但会在第一次交互时重置(跳转到 [0,0] 和默认缩放比例)。
如何通过函数调用重置视口在d3中的位置?
【问题讨论】:
标签: javascript jquery d3.js
我使用 dagre 和 d3 来显示图表。可以拖动和缩放图形元素和视口。每当我重绘图形(或绘制另一个图形)时拖动/缩放视口后,视口会保持在之前设置的位置,但会在第一次交互时重置(跳转到 [0,0] 和默认缩放比例)。
如何通过函数调用重置视口在d3中的位置?
【问题讨论】:
标签: javascript jquery d3.js
Dagre 作者在这里 - 您使用的是 dagre 演示还是这个自定义代码?如果您使用的是 dagre 演示,我可以确认您正在观察的行为,解决方法是添加以下行:
svgGroup.attr("transform", "translate(5, 5)");
在此代码块之前(dagre/demo.js,我的树中的第 252 行):
svg.call(d3.behavior.zoom().on("zoom", function redraw() {
svgGroup.attr("transform",
"translate(" + d3.event.translate + ")"
+ " scale(" + d3.event.scale + ")");
}));
我已经更新了这张票下源代码中的演示:https://github.com/cpettitt/dagre/issues/56
谢谢!
【讨论】: