【发布时间】:2012-06-10 20:02:22
【问题描述】:
我正在一个页面中加载 2 个嵌入式 svg-let。一个动画一个没有。它们使用 setTimeout 按顺序加载。 当我首先加载动画一切顺利时,动画按预期开始,然后第二个静态 svg 正确显示。当我第一次加载第二个,然后是动画时,动画没有开始。
代码在这里:jsfiddle 在 javascript 中切换 #svg1 和 #svg2。
在浏览器检查后,我发现这可能是一个 webkit 错误,因为 chrome 和 safari 都显示这种行为 FF 12 和 Opera 都很好。
这可以用 JS 代码修复还是我应该用 webkit 提交错误?
== 已添加
我认为这个问题应该换个说法,为什么动画在加载了 settimeout 的 svg 后没有开始。
正如 Jared 在下面调查的那样,当元素存在于 DOM 中并通过 dom 操作重新排序到焦点元素中时,它可以工作,Chrome 和 webkit 需要通过对 animate 元素的 beginElement() 调用来启动。这仍然不适用于从纯文本构造的元素。因为我只有一个 mac,而且我仍然认为这是一个爱好项目,所以我完全不考虑 MS IE。
【问题讨论】:
-
在 Opera 12 中工作正常。
-
@ErikDahlström 感谢您检查和更新问题。
-
你知道你在自动小提琴
onLoad处理程序中加载了jsFiddle的$(document).ready()吗? -
我做了一些重新格式化,以便您的标记更容易理解:jsfiddle.net/userdude/Kx3Hw/4 此外,它似乎在 FF13、Win7 上运行良好。
-
我实际上已经想通了,但我还没有完成演示。
标签: javascript svg settimeout