首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将svg图像附加到另一个svg图像的rect元素?

如何将svg图像附加到另一个svg图像的rect元素?
EN

Stack Overflow用户
提问于 2012-04-27 00:18:36
回答 3查看 5.4K关注 0票数 1

我尝试使用d3将svg图像附加到svg图像的rect元素中,并尝试

代码语言:javascript
复制
chart.selectAll("rect.bar")
  .each(function(datum, index) {
    d3.select(this)
      .append("svg:image")
        // ..some attributes
  });

这会将<image>添加到dom中,但图像不会显示。我还尝试过使用jquery在.each块中选择this,这会将其添加到dom中,但也没有显示出来。

对于jquery,我将其添加到

代码语言:javascript
复制
$(this).after("<svg:image xlink:href='/images/image.svg' x='20' y='20' width='20' height='20'/>");

html元素中使用svgxlink名称空间

代码语言:javascript
复制
<html lang="en" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">

我已经能够使用.selectAll为每个rect.bar创建一个映像,但我希望根据datum值创建更多映像。

EN

回答 3

Stack Overflow用户

发布于 2012-04-27 17:06:07

我需要使用jquery来选择父元素,这样图像就不会放在rect.bar元素中,而是放在它旁边。代码如下:

代码语言:javascript
复制
chart.selectAll("rect.bar")
  .each(function(datum, index) {
    var rectBar = $(this).parent()[0]; // Needs parent object, otherwise it will append inside rect
    var num = 4;

    for (var i = 0; i < num; i++) {
      d3.select(rectBar)
        .append("svg:image")
          // ...some attributes
    }
  });

此外,.parent()本身也无法正常工作。我需要显式地做.parent()[0]。不知道为什么。

票数 2
EN

Stack Overflow用户

发布于 2012-05-02 08:26:25

我不知道这对您是否重要,但我相信您可以在不使用jquery的情况下做到这一点。Mike Bostock的"D3 Workshop“演示文稿展示了如何正确地选择和附加DOM中的元素。

一旦您可以选择任何元素,您就可以附加任何SVG绘图(例如矩形、圆形、文本等,甚至外部图像)。要控制附加图像的位置,我相信您可以简单地使用"dx“和"dy”坐标偏移控制器。

在示例"Multiple D3 Pie Charts Mixed With Common HTML Layout Constructs“中,我首先根据HTML页面上的HTML DIV位置创建多个SVG canvases。然后,我将这些条放置在SVG画布上的特定位置。然后,我将图例项目符号附加并放置在同一SVG画布上的不同位置。最后,我附加了,并将图例文本放在同一个SVG画布上的不同位置。在每种情况下,我都使用dx和dy坐标控制器来控制对象的放置。

我希望这能帮到你,

弗兰克

票数 1
EN

Stack Overflow用户

发布于 2012-04-27 00:27:11

像这样试一下。

代码语言:javascript
复制
chart.selectAll("rect.bar")
  .each(function(datum, index) {
    $(this).append("<img href='http://www.mysite.com/images/test.jpg' />")
        // ..some attributes
  });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10337375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档