【问题标题】:d3 force layout zoom and pan conflict with node dragd3 强制布局缩放和平移与节点拖动冲突
【发布时间】: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


【解决方案1】:

这似乎只适用于旧版本。例如。 http://d3js.org/d3.v2.js 有效但是 在http://d3js.org/d3.v3.js 上无法正常拖动。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-22
    • 2014-08-29
    • 1970-01-01
    • 2015-07-08
    • 2012-11-06
    • 2013-12-04
    • 2015-05-27
    • 1970-01-01
    相关资源
    最近更新 更多