2016-10-08 48 views
1

我一直在尝试调整下面链接中显示的可折叠力布局。 http://bl.ocks.org/mbostock/1093130D3可折叠力布局可变链接长度

任何人都可以帮助我了解如何设置每个链接的链接距离为不同的长度,而不是将它们全部设置为一个值?

与此问题类似的例子是https://bl.ocks.org/mbostock/1062288,它似乎允许单个链接具有不同的长度。但是,我不明白代码是如何解释这一点的。

任何指导表示赞赏。

+0

你可以使用帮助linkDistance来做到这一点。请看看这个http://stackoverflow.com/questions/32882284/increasing-the-connecting-link-length-in-d3-when-the-node-is-expanded – Cyril

+0

谢谢西里尔,这有很大的帮助。对于任何可能读取此内容的人来说,它意识到我必须在定义链接距离时指定我指的是“目标”,这一点也很重要。 –

回答

1

由于Cyril提到下面的代码是有用的。

var force = d3.layout.force() 
.linkDistance(function(d){ 
    if(d.target._children){ 
     return 50;//target is not expanded so link distance is 50 
    } else { 
     return 200;//target is expanded so link distance is 200 
    } 
}) 

那有什么对我来说是这样的:

var force = d3.layout.force() 
.linkDistance(d.target.nodeproperty) 

尤其是我没有意识到我必须指定d.nodeproperty的内部目标。