【问题标题】:update node' child element position in D3 force layout在 D3 强制布局中更新节点的子元素位置
【发布时间】:2014-10-24 03:54:42
【问题描述】:

我是 d3 的新手。今天早些时候,我尝试了一些 d3 强制布局示例,效果很好。

但是当我自己动手制作每个节点一个g元素,并追加子circletext时,这些子节点的位置不会自动更新。

这里是jsFiddle

顺便说一下,在这个例子中,我调用了 node.append('someElement') 3 次

-第一次: node.append('g') > 变成<g></g>

-第二次:node.append('circle')> 变成<g><circle></circle></g>

-最后一次:node.append('text') > 变成了<g><circle></circle><text></text></g>

正如我所想,上次也应该将text 包含到circle 中,但不是,为什么?谢谢

【问题讨论】:

标签: javascript d3.js visualization force-layout


【解决方案1】:

我终于解决了这个问题。

使用变换是更新其父绑定到数据的孩子位置的正确方法。

所以将textcircle 附加到g 节点是正确的方法。

这里是jsfiddle update

我的第二个问题的答案是,

第二个和第三个附加是附加到g,因为之前有一行代码

    node = node.enter()
        .append("g")
        .attr("class", "node");

【讨论】:

    猜你喜欢
    • 2016-08-15
    • 2014-08-01
    • 2012-09-10
    • 2018-12-24
    • 1970-01-01
    • 2018-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多