【发布时间】:2012-09-22 09:30:55
【问题描述】:
我有一个 d3.js 静态力布局图,它可以变得相当大(有时部分被剪裁),所以我想让用户通过拖动来平移整个图。我认为我不需要拖动单个节点,我有一种感觉会让人感到困惑,但希望能够显示被 svg 边界裁剪的图形部分。
我在http://bl.ocks.org/3811811 有一个最小的例子,它使用了
visF.append("rect")
.attr("class", "background")
.attr("width", width)
.attr("height", height)
.call(d3.behavior.zoom().on("zoom", redrawVisF));
function redrawVisF () {
visF.attr("transform","translate(" + d3.event.translate + ")" + " scale(" + d3.event.scale + ")");
}
实现平移,但我发现它真的很“飘忽”而且一点也不流畅,以至于我猜它会阻止人们尝试拖动功能。有没有人知道为什么会发生这种情况和/或如何解决它的想法?
【问题讨论】:
标签: d3.js zooming drag force-layout pan