D3js附加嵌套元素

时间:2013-10-04 20:38:42

标签: javascript d3.js

我有d3js强制布局。我试图向每个节点附加一个嵌套元素。 这是代码:

node
    .append("div")
    .attr("width", 60)
    .attr("height", 60);

    node.select("div")
        .append("image")
            .attr("xlink:href", function(d)
            {
                return d.url
            })
            .attr("x", -8)
            .attr("y", -8)
            .attr("width", 30)
            .attr("height", 30);

    node.select("div")
        .append("text")
            .attr("dx", 12)
            .attr("dy", ".35em")
            .text(function(d) { return d.name });

我得到的结果是:

<div width="60" height="60">
     <image xlink:href="image.jpg" x="-8" y="-8" width="30" height="30">
     </image>
     <text dx="12" dy=".35em">mp3</text>
</div>

问题在于我没有看到图像和文字。

怎么办?

由于

1 个答案:

答案 0 :(得分:2)

使用g元素,它有变换将元素放在正确的位置。如果你想使用div而不是g,你必须将div放在svg之上浮动。

#canvas {
  position: relative;
}
#canvas.div {
  position: absolute;
  top: 320px;
  left: 150px;
}

画布是你附加svg的地方。我在这里使用这种技术:

http://vida.io/documents/SuRAGDs7J78HCvoxE