1
如何在D3.js包布局已经创建并显示在SVG元素中时将其他节点添加到D3.js包布局中?重新计算整个pack
是一个选项,但我想插入更加无缝。将节点插入到D3包装布局中(缩放分页)
我在找的是一个pack().addNode()
函数,它允许我将其他子节点插入现有的叶节点。当用户放大到该叶节点时,叶节点应该变成父节点并将插入的节点显示为子节点。
请看看at my fiddle here。名为subnode_jane
的节点应接收subnode_subnodes
中的孩子作为其新孩子。
var subnode_subnodes = [{
"name": "JanesDaughter",
"size": 1030
}, {
"name": "JanesSon",
"size": 12000
}];
function zoom(d) {
var focus0 = focus;
focus = d;
if (d.name === "subnode_jane") {
alert("Oh I see subnode_jane has unpaginated children; insert them now!");
}
/* ... */
}
可选:当这样做时,如果原始节点的总体外观保持完全相同将会很好。谢谢!
相关:update a layout.pack in d3.js
http://bl.ocks.org/mbostock/1095795,http://stackoverflow.com/questions/11606214/adding-and -removing-nodes-in-d3js-force-graph,http://stackoverflow.com/questions/21070899/d3-js-how-to-remove-nodes-when-link-data-updates-in-a-force -布局 – 2015-04-01 10:04:15