我有两个 SVG 图像,它们总共有大约 8000 行,并且由几个带有渐变的形状组成。没有图案、过滤器、文本,只有带有笔触、简单或渐变填充的基本图形元素。
目前它们在生成 HTML 时被内联注入,因此源代码变得非常庞大。这是否会降低动画的性能,因此最好以不同的方式嵌入 svg?
嵌入 svg 时是否有一般的经验法则?
问候菲利普
如果您使用 HTML5 SVG 标签嵌入 SVG 内联,这不仅会增加 html 文件的大小,还会让 DOM 和您的浏览器渲染器保持忙碌。
如果您使用 iframe,您实际上并不知道它何时被加载或呈现,至少不是所有浏览器都如此。
HTML5 为您提供 JavaScript,这可能是解决方案。只需等待主体加载,然后注入 SVG。
您可以使用body-onLoad或 jQueries ready()-funktion
以下是它在 jQuery 中的实现方式:
<!DOCTYPE html>
<html>
<body>
<div id="svg-01" class="placeholder"></div>
<script src="path/to/jQuery.js"></script>
<script>
$(document).ready(function(){
$("#svg-01").replaceWith('<svg><!--// some svg //--></svg>');
});
</script>
</body>
</html>
我什至会更进一步,而是使用 iframe 和gziped SVG 替换它,如此处所述。