我的力图出了问题,我用d3创建了它。我使用d3.json检索的数据动态地添加到节点和链接数组中。我的问题出现在最初的呈现之后,我添加了更多的节点和链接到它们各自的数组。添加的链接已呈现为节点的“顶部”。不幸的是,我的节点由图像组成,因此链接覆盖了该图像的一部分。我想出的解决方案是选择svg容器中的所有内容(节点和链接),并在每次update()调用时删除它们,然后再次输入每个元素。这似乎是一种效率低下的方法。我篡改了z指数,但没有结果.有什么建议吗?
发布于 2013-11-08 15:46:39
如果您总是PREpend任何链接(即在任何节点之前添加到容器的链接),就不会有一个链接重叠一个节点。使用insert()
可以做到这一点,只要指定一个与您想要保持在顶部的节点相匹配的选择器,它就会占优势:
forceContainer.selectAll('.node').data(force.nodes())
forceContainer.enter()
.append('div')
.attr('class', 'node')
forceContainer.selectAll('.link').data(force.links())
forceContainer.enter()
.insert('div', '.node') // Inserts link before any of the existing nodes
https://stackoverflow.com/questions/19868645
复制