【发布时间】:2017-01-14 15:22:00
【问题描述】:
我正在尝试使用 JavaScript 在网络浏览器中为 SVG 设置动画。我目前的方法是使用 innerHTML:
var e = new entity();
function draw() {
element = document.getElementById("canvas");
e.radius += .1;
e.pos[0] += .1; e.pos[1] += .1;
var insides = "";
insides += '<svg height="80%" viewBox="0 0 100 100">' + e.show() + '</svg>';
element.innerHTML = insides;
}
function entity() {
this.pos = [0, 0];
this.radius = 1;
this.show = function() {
return '<circle cx="' + String(this.pos[0]) + '" cy="' + String(this.pos[1]) + '" r="' + String(this.radius) + '" />';
}
}
window.setInterval(draw, 60);
<div id="canvas" style="text-align:center;"></div>
我想确保我不会浪费太多资源,那么在 HTML 文档/JavaScript 中是否有任何方法可以减少资源密集型以使用 SVG 进行受控的交互式动画,例如这样?
【问题讨论】:
-
SMIL 会更有效率。
-
我试图避免使用 SMIL,因为它的兼容性有限。
-
如果你使用 fakeSmile polyfill leunen.me/fakesmile,它具有很好的兼容性,因为它可以在所有浏览器上运行
-
好的,我会调查 fakeSmile,谢谢!
标签: javascript css svg optimization svg-animate