Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在d3树中隐藏根节点_Javascript_Css_D3.js_Tree_Nodes - Fatal编程技术网

Javascript 在d3树中隐藏根节点

Javascript 在d3树中隐藏根节点,javascript,css,d3.js,tree,nodes,Javascript,Css,D3.js,Tree,Nodes,我用它作为数据流图的起点。不幸的是,我真的需要有分离树的能力(即两个没有连接节点的树)。 我决定通过使根节点及其分支不可见和不可链接来解决这个问题。(这样,树下的每个子树看起来都是一棵独立的树,但仍会保持正确的间距 我成功地隐藏了从根节点到其子节点的链接,方法是向linkColor函数添加一个新的大小写,将颜色设置为白色,并将该颜色代码分配给根节点的子节点 我现在陷入困境的地方是隐藏根节点本身。我尝试将其大小设置为0,但这会将其和所有子节点、孙子节点等节点消失。而大小1仍然可见 我尝试过使用ja

我用它作为数据流图的起点。不幸的是,我真的需要有分离树的能力(即两个没有连接节点的树)。 我决定通过使根节点及其分支不可见和不可链接来解决这个问题。(这样,树下的每个子树看起来都是一棵独立的树,但仍会保持正确的间距

我成功地隐藏了从根节点到其子节点的链接,方法是向
linkColor
函数添加一个新的大小写,将颜色设置为白色,并将该颜色代码分配给根节点的子节点

我现在陷入困境的地方是隐藏根节点本身。我尝试将其大小设置为0,但这会将其和所有子节点、孙子节点等节点消失。而大小1仍然可见

我尝试过使用javascript路径而不是数据路径,尝试过添加样式属性、添加用css隐藏的类、跳过着色函数等等。但是javascript的主要问题是,我真的不知道如何隔离/找到根节点

我尝试过的事情:

d3.json("example.com/mylink.json", function(error, flare) {
  edge_weight.domain([0,flare.size]);
  root = flare;
  root.x0 = height / 2;
  root.y0 = 0;
  root.attr("class", "root"); //I've tried this
  root.style("fill", "#ffffff"); //I've tried this
  root.circle.style("fill", "#ffffff"); //tried this
  root.children.forEach(collapse);
  update(root);
});
我尝试过影响节点属性本身和应用于节点的设置/样式,但同样,我不知道如何仅提取/标识根。
感谢您的帮助和想法!

root
是包含树数据的对象,而不是根节点

要隐藏根节点并使其不可访问,请使用深度(根节点具有
depth=0

对于链接,使用与深度相同的逻辑:

.style("opacity", function(d, i) {
        return !d.source.depth ? 0 : 1;
    })
    .style("pointer-events", function(d, i) {
        return !d.source.depth ? "none" : "all";
    });
由于您没有发布您的代码,以下是您与这些更改共享的bl.ock:

.style("opacity", function(d, i) {
        return !d.source.depth ? 0 : 1;
    })
    .style("pointer-events", function(d, i) {
        return !d.source.depth ? "none" : "all";
    });