使用Snap.svg导入SVG不会显示渐变

时间:2015-01-21 15:46:21

标签: javascript svg snap.svg

我正在尝试使用Snap.svg使用Snap.svg load函数导入现有SVG。但是,它可以工作,原始SVG文件中的任何渐变都被删除,它们的区域只是填充为白色。这是预期的行为,还是我错过了什么?

注意 - SVG是在Inkscape中创建的。使用<embed><object>

时可正确显示

当我使用<embed src="robot.svg"/>时,它会正常显示,就像这样 http://postimg.org/image/pwe9zute3/

然而,当我使用

<script>
  var s = Snap("24in","12in");
  Snap.load("robot.svg", function (f) {
      var g = f.select("g");
      s.append(g);
  });          
</script>

它像这样加载 http://postimg.org/image/5u0woiw7n/

如果有人想检查它,下面是一个下载SVG的链接。

https://www.dropbox.com/s/bdtujg1vr2dp6f4/robot.svg?dl=0

有趣的提示 - 在保管箱网站上显示为预览时,它也没有渐变。但是,从Dropbox下载SVG并在浏览器中查看它,它具有渐变。

1 个答案:

答案 0 :(得分:3)

您不会将渐变定义附加到捕捉中,只是图形中<g>元素的内容和渐变位于<defs>元素下。