- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个包含超过 3000 条路径的怪物动画 SVG 文件。每个路径都使用声明性 SMIL 动画独立地进行动画处理。它在所有新浏览器中播放缓慢但精美,为 IE9 使用一点 js 回退。 (我会发布一个链接,但它不会澄清任何事情。)
我使用 HTML5 和内联 SVG 开发了该页面。就在我完成时,我意识到我不想强制移动浏览器在这个巨大的文件上窒息。所以我将 svg 移动到一个外部文件,并重新添加所有 xml 声明。在页面中的重要信息已经呈现后,我调用外部 svg,使用一些条件逻辑和一些教科书 ajax:
function loadThatSvg(){
var xhr = new XMLHttpRequest;
xhr.open('get','floral.svg',true);
xhr.onreadystatechange = function(){
if (xhr.readyState === 4) {
if ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304 ) {
var flowers = xhr.responseXML.getElementById('floralpaths');
var stage = document.getElementById('stage');
stage.appendChild(flowers);
}
}
};
xhr.send(null);
}
window.onload = function(){
setTimeout(loadThatSvg,3000);
}
各种浏览器中的检查器工具显示文件正在正确加载。问题是动画永远不会被触发,所以什么也不会发生!它们在 DOM 中。我能看到他们。但是,在标记 中启动 SMIL 动画的任何计时器或事件似乎都不适用于动态加载 动画元素。
但后来我读到this bug report在 Bugzilla 上,它专注于这个用例,并表明问题已经解决(尽管对于我在 FF13 中的测试,它显然没有)。嗯……
是否有一些自定义函数或声明可用于在动态加载的 SVG 内容中启动 SMIL 动画的时钟?即使答案是断然的“不”,但对于像我这样的人来说,了解一种或另一种方式会很好。感谢您的澄清!
更新:
这是原始 svg 文件。它适用于 FF、Opera 和 Webkit。请耐心等待:
这是一个引用来自同一域的相同 SVG 文件的页面。我已经更改了我早期代码中的 appendChild
语句以包含一个 adoptNode()
方法,这让它在 FF13 和 Opera 11.64 中工作,但动画仍然没有被踢在 webkit 中关闭:
最佳答案
有一些方法可以做到这一点。请注意,我假设您已经将动画文档插入到主文档中。
第一种方式,通过脚本启动动画:
第二种方法是重置文档中的当前时间,动画元素相对于该时间。这可能有效,您必须测试并查看:
如果你选择第二个,但它不起作用,你也可以尝试暂停和取消暂停,如下所示:
关于javascript - SMIL 动画在动态加载的外部 SVG 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10942013/
SMIL ( Synchronized Multimedia Integration Language ) 对于现代应用程序来说已经死了吗? 是否有替代它的用于组合媒体的标准化格式? 最佳答案 从缺乏
有人有学习 SMIL 动画的资源吗? 最佳答案 这些应该让你继续: W3Schools SVG Reference Hefty tutorial连同 66 page PDF tutorial Anim
我正在尝试向简单的 SVG SMIL 动画添加计时功能。显然可以使用 keySplines 设置时间/缓动属性,但是在我的示例中它不起作用:
SMIL is deprecated and not going to work on chrome anymore 我刚开始学习如何制作动画 svg,我偶然发现了这个声明。我不知道这是不是真的(我希
我使用 SVG SMIL 动画是因为我还没有找到另一种方法来制作曲线形状的动画。这种方法适用于除 iOS 浏览器之外的所有浏览器。 这是我的 SVG 代码: .st0{fill:rgba(
我试图在我的 SVG 中让两个动画相继运行。 这就是它们的写入方式。它们被写入一个组,里面有一些原语。我正在尝试让整个组旋转然后平移。 但是当我运行这个时,变换似乎在第一个动画结束时重置
上下文:我正在使用 SVG 制作信息图。我希望借助动画,尤其是通过链接动画,让文档变得栩栩如生。我已经熟悉 SVG,但最近才开始学习 SVG 动画。 由于 SMIL 已被弃用,我正在尝试用纯 SVG
我创建了一个包含超过 3000 条路径的怪物动画 SVG 文件。每个路径都使用声明性 SMIL 动画独立地进行动画处理。它在所有新浏览器中播放缓慢但精美,为 IE9 使用一点 js 回退。 (我会发布
我有一张布拉格机场航类目的地的 SVG map 。我想沿着通往这些机场中的每一个的路径制作一个圆圈。 获取代码here (对此感到抱歉,不适用于 jsfiddle)。 处理“飞行”动画的代码如下所示:
我正在尝试制作一个 SVG 图标,该图标在悬停时使用 SMIL 进行动画处理(好吧,我不在乎它是 SMIL 还是 CSS,我只是不想使用 JS)并且我已经走了很远但是我遇到了一个无法在网上找到答案甚至
过去我在 javascript 方面做过很多工作,包括一些 DOM 操作。从那里我了解到回流/重绘在某些情况下可能是一个很大的性能问题,并且通常应该限制在最低限度。例如,当添加一组 div 时,您应该
我需要我的 perl 脚本从 SMIL 文件中提取 jpeg。我看到在 linux 中执行此操作的唯一方法是使用以下命令。 xxd -c1 -p wapenc\?T\=mavodi-6-13b-1f-
SMIL(同步多媒体集成语言)最后一次更新是在 2008 年,有谁知道在同步多媒体文件时是否有更好的协议(protocol)可遵循? 最佳答案 SMIL 没有天然的竞争对手,因此任何其他解决方案都将依
我正在尝试确定如何有效地反转此 SVG 动画(使用 SMIL),它使用 animateMotion 和 path 上的 d 属性元素。我需要动画围绕形状逆时针运行。 当前动画可以查here相关代码如下
有谁知道流行浏览器中 SVG SMIL 动画支持的当前状态?看起来 Safari、Chrome 和 Opera 都支持它。 Firefox 在他们的开发页面中有关于添加了 SMIL 支持的令人困惑的报
我在 Safari 中遇到基本 SVG 动画的问题。 它通过仅显示没有动画的 SVG 优雅地失败了,但如果可能的话,我希望它也能在 Safari 中工作。 动画与找到的示例非常相似 here :
我正在尝试使用 SVG 为视频元素创建 UI。我正在寻找一个简单的解决方案来为控制栏设置动画,当鼠标在其中时(如 YouTube),我想从窗口底部升起。 这是我想做的:
我正在尝试使用 SMIL以动画方式将文本输入到嵌入在 SVG 中的字段中。我每晚在 Chrome 和支持 SMIL 的 Firefox 中尝试了以下代码,但没有效果:
我一直在看一篇关于 SVG 动画的文章。 Code: http://codepen.io/chriscoyier/pen/DpFfE 文章:http://css-tricks.com/svg-shap
我对使用 smil SVG 动画和使用 javascript/jquery otf 更改内容有一些疑问。 这是我已经尝试过的: HTML/XML:
我是一名优秀的程序员,十分优秀!