【问题标题】:Unable to get SVG 'use' to work, if created dynamically如果动态创建,则无法让 SVG“使用”工作
【发布时间】:2015-04-03 21:06:51
【问题描述】:

SVG 有一个很棒的 symbol / use 系统,可以在其中定义例如图标只有一个,然后使用 use 将它们放在 SVG 周围。只是我没有让它在 JavaScript 中工作。

看到这个fiddle

以编程方式创建的use 节点在浏览器的 DOM 中变得可见,并且与静态创建的节点相同。但只有静态的可见。

你能解释一下发生了什么吗?


symboldefs 非常相似,但允许在符号旁边定义viewBox,从而使条目的缩放更容易并使代码更简洁。我可以与 defs 合作,但我在那里也遇到了类似的问题。

注意:我的 JavaScript 在 HTML 端,而不是在 SVG 中。我想这样。

【问题讨论】:

    标签: javascript svg


    【解决方案1】:

    我认为您的小提琴中有错字(xref vs href):

    use.setAttributeNS( xlinkns, "xlink:xref","#tri");
    

    而不是

    use.setAttributeNS( xlinkns, "xlink:href","#tri");
    

    【讨论】:

    • 其实我觉得应该是use.setAttributeNS( xlinkns, "href","#tri");
    • 好的。您是否有关于为什么可以删除“xlink:”的参考(肯定是因为它在命名空间参数中)。我的代码是基于metaskills.net/2014/08/29/…,他似乎在重复。
    • stackoverflow.com/a/12423019/3702797 因为@Robert Longson 是他自己的参考
    猜你喜欢
    • 2014-07-01
    • 2018-08-11
    • 2015-05-05
    • 2018-10-04
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    • 2023-02-22
    • 1970-01-01
    相关资源
    最近更新 更多