我支持我们应用程序中的一些旧 SVG 图形。我在为矩形的填充颜色设置动画时遇到了一些问题,我想知道是否有其他人看到过同样的问题。
我们在 rec 上设置了一个动画元素,最终看起来像这样:
<svg id="svgEle" xmlns="http://www.w3.org/2000/svg" version="1.1">
<rect id="rect"
width="100" height="100"
style="fill:#008000; stroke:#000000;">
<animate id="animate" fill="freeze"
attributeName="fill" attributeType="CSS"
begin="indefinite" dur="1s"></animate>
</rect>
</svg>
然后,根据来自 web 服务结果的值,我们更改矩形的颜色并尝试为颜色更改设置动画。目前,Chrome 似乎是唯一支持 beginElement 功能的原生 SVG 渲染器。动画在第一次运行时完美运行,但所有后续更新动画的尝试都没有按预期运行。它们似乎总是恢复到第一个动画的填充颜色。
我创建了以下示例来说明我的意思:http: //jsfiddle.net/ssawchenko/ARXbs/
在 Chrome 中,当您单击按钮时,矩形应该通过动画循环显示所有 4 种颜色,但事实并非如此。在 IE9 中不支持动画,所以直接更改填充颜色。
我可以用 IE9 简单地设置填充,但是,在 Chrome 中颜色完全被破坏了。有谁知道这是否是一个错误,或者是否有解决方法?
谢谢!