我使用dagre和d3来显示图形。可以拖动和缩放图形元素和视口。每当我重绘图形(或绘制另一个图形)时拖动/缩放视口后,视口将保持原先设置的位置,但会在第一次交互时重置(跳转到[0,0]和默认缩放比率)。
如何通过函数调用重置d3中视口的位置?
答案 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
谢谢!