d3.js重置视口的位置

时间:2013-03-07 07:55:29

标签: javascript jquery d3.js

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

如何通过函数调用重置d3中视口的位置?

1 个答案:

答案 0 :(得分: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

谢谢!