2015-08-25 65 views
0

這是我第一次使用D3和強制佈局,並根據需求自定義可摺疊的力佈局。但是,當我最初單擊節點時將其擴展到子級節點當我將更多json數據放入它時,屏幕會出現令我感到恐慌的情況。請幫助我如何控制這種擴展,我在網上找不到任何有關它的幫助。控制可摺疊佈局中的節點擴展

+0

恐怕你要分享更多的代碼,甚至更好,什麼你現在有一個小例子,它從如何** **應該如何的行爲不同。否則,這將很難幫助你。 –

+0

鏈接到代碼https://jsfiddle.net/vjeux/kb3gN/ –

+0

對不起,這是錯誤的網址共享。我只會附上代碼 –

回答

0

您可以設置children的初始位置時,會被擴展:

var numChildren = d.children.length; 
    var dTheta = Math.PI * 2/numChildren; 
    var r = Math.min(width/10, height/10); 

    // Initially, distribute children in a circle with radius `r` 
    // around the parent. 
    d.children.forEach(function (c, i) { 
    c.x = d.x + r * Math.cos(dTheta * i); 
    c.y = d.y + r * Math.sin(dTheta * i); 
    }); 

否則,孩子們的初始位置是隨機選擇的([0, width], [0, height])

此外,您可以減少alpha以使外觀更平滑一些。

演示:http://jsfiddle.net/70qy8ps6/2/

+0

現在在第一次點擊它很好,但在進一步的點擊它創造了同樣的問題.. :( –