gpt4 book ai didi

javascript - 使用 D3,如何避免在节点上呈现 SVG 图形链接?

转载 作者:行者123 更新时间:2023-11-30 12:10:44 25 4
gpt4 key购买 nike

在页面加载时,我的 D3 图形可视化看起来像预期的那样:

node on top of links

但是,在单击根节点折叠所有连接,然后再次单击展开它们之后,到根的链接会出现在根节点的顶部。

links on top of node

我该如何解决这个问题?

这只发生在根节点上。

我的代码很长,所以 you can find it here .

最佳答案

创建两个SVG groups ( <g> )充当,并将您的节点和链接保持在不同的层中。

这是它的要点:

var vis = d3.select("body").append("svg"); // Visualisation root

// Append layers in desired draw order; these groups are permanent elements.
var linksLayer = vis.append("g").attr("id", "links-layer");
var nodesLayer = vis.append("g").attr("id", "nodes-layer");

...

// Inside the layer-groups, shuffle nodes around as needed based on data.

var nodes = nodesLayer.selectAll(".node").data(nodeData);
nodes.enter() ...

var links = linksLayer.selectAll(".link").data(linkData);
links.enter() ...

与在每个新条目上将元素洗牌到后面相比,这节省了周期,更健壮,并且在检查 DOM 树时更容易理解。

关于javascript - 使用 D3,如何避免在节点上呈现 SVG 图形链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33879547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com