1

我有 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>

问题是我看不到图像和文字。

该怎么办?

谢谢

4

1 回答 1

2

使用 g 元素,它可以将您的元素放在正确的位置。如果您想使用 div 而不是 g,则必须将 div 定位为浮动在 svg 之上。

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

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

http://vida.io/documents/SuRAGDs7J78HCvoxE

于 2013-10-04T21:00:46.447 回答