无法使用ie9和firefox制作SVG动画

时间:2013-02-21 18:50:28

标签: internet-explorer firefox svg svg-animate

我不知道我错过了什么。 SVG动画在chrome中显示确定,但是虽然我在ie9和firefox中看到了图像,但我看不到动画。

我已从Corel Draw x5导出svg文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"        "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Creator: CorelDRAW -->
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="100%" height="100%" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
viewBox="0 0 25.4 2.64582"
 xmlns:xlink="http://www.w3.org/1999/xlink">
 <defs>
  <style type="text/css">
   <![CDATA[
    .str0 {stroke:#898989;stroke-width:0.05}
    .fil0 {fill:none}
   ]]>
  </style>
 </defs>
 <g id="Capa_x0020_1">
    <path class="fil0 str0" d="M0.10261 2.04656c0.08134,0 0.25217...
    />

然后我添加了动画:

<path class="fil0 str0" d="M0.10261 2.04656c0.08134,0 0.25217...
    stroke-dasharray="">
  <animate id="first" attributeName="stroke-dashoffset" from="" to="0" dur="10s" begin="0s"
  onload="var length = parentNode.getTotalLength();
                   parentNode.setAttribute('stroke-dasharray',length+','+length);
                   this.setAttribute('from',length)" />
  </path>

代码可以在jsfiddle http://jsfiddle.net/calamar888/WsxHs/

中看到

非常感谢!

PS 1:不得不说我已经找到了答案,但到目前为止我找不到解决问题的方法。

PS 2:Firebug控制台没有显示任何内容

1 个答案:

答案 0 :(得分:5)

IE9不支持动画,Firefox只会触发<svg>元素上的onload事件,因此您必须将onload代码移动到根<svg>元素之外。