2013-01-17 83 views
2

先决条件:d3强制定向布局; 一些节点通过连续点击逐个选择(视觉他们做大代码推到阵列)在d3中拖动多个节点强制定向布局

有没有办法来他们都通过挑选一个与鼠标相同的方式,在文件Windows资源管理器?

P.S.我在这里得到了非常多的答案,而不需要很长时间。这是我的第一个问题。预先感谢任何帮助!

+0

@Dmitra Kyianytsia(又名约翰Veinmann),**你尝试过什么?**(-1不公布任何企图) –

回答

3

我强制拖拽多个节点(基于儿童)的方式是通过记录拖动节点在我的tick函数内的位移,该变量的作用域允许该值在下一次tick运行时仍然存在。

您将需要一个对象,其中的关键字是要拖动的节点的唯一标识符,值是您想要在拖动关键节点时翻译/拖动的节点的d3选择。

dragObject是上述目的。

nodeData是您正在拖动的主节点的d3数据 - (d3.select(node uid).datum())。

offset.xoffset.y组成了上一次运行时刻定义的上述变量。

var translateAllChildren = function (nodeData) { 
    if (dragObject[nodeData.uid]) { 
     dragObject[nodeData.uid] 
      .attr("transform", function(d) { 

       d.x = (d.x + offset.x);; 
       d.y = (d.y + offset.y); 

       return "translate(" + d.x + "," + d.y + ")"; 
      }); 
    } 
} 
+1

我知道这是旧的答案,但可以提供更多的细节? :) –

+0

@Wexoni关于具体的事情? –

相关问题