【问题标题】:Importing SVG with Snap.svg doesn't display gradients使用 Snap.svg 导入 SVG 不显示渐变
【发布时间】:2015-01-22 00:30:00
【问题描述】:

我正在尝试使用 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 网站上显示为预览时,它也没有渐变。但是,从 Dropbox 下载 SVG 并在浏览器中查看,它具有渐变效果。

【问题讨论】:

  • 你能附上一个测试用例吗?
  • @RobertLongson 添加了

标签: javascript svg snap.svg


【解决方案1】:

您没有将渐变定义附加到 snap 中,只是绘图中 &lt;g&gt; 元素的内容和渐变位于 &lt;defs&gt; 元素下。

【讨论】:

    猜你喜欢
    • 2010-09-25
    • 2019-05-07
    • 2017-03-06
    • 2015-11-10
    • 2016-06-12
    • 2023-01-26
    • 2016-12-23
    • 2022-01-19
    • 2014-03-05
    相关资源
    最近更新 更多