2013-11-28 110 views
0

我使用strokeDashoffset和strokeDasharray方法在ff和chrome中动画svg路径它的工作原理和看起来很好只在IE我得到这个奇怪的效果。IE9奇怪的行为,当动画SVG

在线例子 - http://www.vicsmash.com/experiments/svganim/

我与联SVG测试getElementsByTagNameNS对象中嵌入不管我用什么方法IE渲染它一样 - 它也适用于对setInterval和Requestanimframe动画 - 绝对没有什么区别。

图片网址 - http://i.stack.imgur.com/aD0EG.png

回答

1

如果IE不重绘的东西,还记得你可以手动强制使用forceRedraw功能重绘SVG。我认为这里的问题在于您使用的插件,但不幸的是我无法确定。

您可以通过在动画期间创建一个重绘SVG的间隔函数来解决该问题(希望插件允许onStart/onEnd事件以设置和清除间隔为目标),但为了“它甚至工作”,这里使用jQuery的小提琴:http://jsfiddle.net/eithe/qseGX/

(我需要的jQuery只为的document.ready事件和节点的遍历,你可以安全地删除它在你的代码)

+0

我加了力上重绘SVGSVGElenment每帧,它仍然做同样的事情。我不认为这是图书馆的问题,因为我试图像requestanimframe和间隔只是在纯js似乎没有工作。即使这个jsfiddle的例子似乎正在打破。 – VicJ

+0

确定重绘本质上是答案,但它必须在身体上完成 - 所以在我的onUpdate引发我添加的每一帧: var n = document.createTextNode(''); document.body.appendChild(n); document.body.removeChild(n); 这似乎解决了IE问题 - 我将在一秒钟内上传示例,以便将来可用:) – VicJ