1

我使用 dagre 和 d3 来显示图表。可以拖动和缩放图形元素和视口。每当我重绘图形(或绘制另一个图形)时拖动/缩放视口后,视口保持在之前设置的位置,但在第一次交互时重置(跳转到 [0,0] 和默认缩放比例)。

如何使用函数调用在 d3 中重置视口的位置?

4

1 回答 1

2

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

谢谢!

于 2013-03-08T00:14:43.913 回答