【发布时间】:2014-05-24 08:45:46
【问题描述】:
我的力布局图是由 d3.js 构建的。我想为我的力图添加缩放和平移。 我可以访问相关信息,并且缩放和平移工作。但是当我尝试将节点拖动到某个地方时,它会带来新的问题,只会使整个图形平移,之前的节点拖动功能不起作用。我采取的方法是Here
我发现关键点是
.call(d3.behavior.zoom().on("zoom", redraw))
.append('svg:g');
但是当我删除.append('svg:g'); 时,缩放和平移不再起作用。那么如何同时保持这些功能(缩放和平移,节点拖动)。
我需要像jsFiddle这样的努力,我在自己的项目中遵循这种方法但它不起作用,我不知道我是否遗漏了什么。
【问题讨论】:
-
你的 jsfiddle 对我来说很好用。
-
定义“不起作用”,它对我有用。什么浏览器受到影响?您使用的是最新的 D3.js 库吗?
-
@Lekensteyn 是的,它工作正常,但那不是我的。我在另一个 stackoverflow anwser Here 中找到它但在我的项目中它不起作用。我想知道为什么?什么决定了拖动功能?
-
@lazybios 您能否提供一个暴露问题的最小示例?请注意,在 d3.js 中,
foo.call(bar)等同于bar(foo),并且不能将拖动和缩放/平移应用于同一元素。您可能只想让节点可拖动,同时允许对 svg 元素进行平移/缩放。
标签: javascript jquery svg d3.js force-layout