2013-11-28 176 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