我将 SVG 设置为元素的背景图像。第一次显示元素时,动画正确播放。
在随后的显示中(例如,如果通过 JavaScript 注入(inject)元素的副本,或者如果删除背景图像并使用 CSS/JavaScript 重新添加),动画不会从头开始。我认为这是预期的功能,因为图像不被认为已被浏览器重新加载 - 它使用已经动画化的内存版本。
这是一个演示(不是我的): http://www.luigifab.info/public/svg-smil/test.html
Firefox 有一些相关的浏览器错误报告和 Chrome ,但如上所述,我认为这是预期的功能。
有没有办法让我的 SVG 动画在显示图像时重置/重播?
理想情况下,我正在寻找仅使用 CSS 和 SVG 的解决方案 - 如果不可能,则寻找使用 JavaScript 的解决方案。
最佳答案
正如@netsurfer 所说,我通过使用对象
解决了这个问题。这是一个例子:
<object type="image/svg+xml" data="my.svg"></object>
每次我动态注入(inject) SVG object
时,动画都会从头开始。
关于javascript - 重新启动背景 SVG 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19177571/