我在我的html 5文档中使用了几个.svg图形,需要通过javascript重新着色。加载时间也需要尽可能短。
我发现这样做的最好方法是使用<use>
。这(应该)将svg集成到DOM中,然后可以通过javascript代码轻松操作。如果我想从单独的文件(而不是html文件中的任何其他位置)加载svg,它对我不起作用。
我的代码如下所示:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<use xlink:href="/resources/svgs/test.svg"/></svg>
我注意到大多数示例都使用...test.svg#someID
,但即使我使用svg中某个符号的id,它也不起作用。如果我在页面中的其他位置定义内联(复制和粘贴)svg然后href它的svg的id它可以工作。
我的错误在哪里?
有没有更好的方法来使用svg?
答案 0 :(得分:0)
好的,它的确如此。将<defs>
与<symbols>
和xlinks:href
一起使用。我唯一能看到的缺点是这些svgs被注入阴影dom,所以你无法用jQuery真正改变它们。