我做了一个 简单的 CSS3 rotate-y 加载图形 只是为了好玩。这是一个 WebKit 中显示的动画 GIF。
工作原理
- 两个 圆形 叠加在一起。一个由 伪元素 创建。
- 伪圆形位于下方,具有负的 z-index。
- 伪圆形具有 内阴影。
- 普通圆形具有常规的 阴影。
- “加载中…” 是一个 strong 标签,具有 隐藏溢出。
- strong 标签的宽度是 动画关键帧,无限循环显示。
- 文本垂直居中,通过使
line-height
等于height
来实现。 - 加载动画是一个 三角形,放置在伪圆形上方但普通圆形下方,并使用 z-index 控制层级。
- 通过更改
-webkit-transform-origin
将三角形从其尖端旋转。 - 三角形使用 关键帧动画 从 0 到 360 度无限旋转。
理想情况下,三角形也应该是一个伪元素,但不幸的是,它是一个 <span>
。伪元素尚不能被动画化。Firefox 4 可以对其进行过渡,但 Firefox 4 还没有关键帧动画功能。
这真是太棒了,一如既往。现在我们只需要其他浏览器赶上来公平竞争了。
继续努力,Chris。
这些技巧正是我 Phonegap 项目所需的!再次感谢您的解释。
Kev
一如既往,很棒的作品。不过在我看来,它看起来不太好…
Google Chrome 9.0.597.84 – Windows XP: http://nahueljose.com.ar/css3-loading.jpg
对于我在 Windows 7 上使用 Chrome 9 也是如此…
一样。Chrome 9 Windows 7 有点问题。
在 Safari for Win (XP) 上运行良好。看起来像是 Chrome 的问题,已经修复了(参见下方的评论)。
奇怪的是,在 Mac Google Chrome 上看起来很棒
http://codecrunchers.net/chrome-mac.png
这是一个已知的错误,
http://code.google.com/p/chromium/issues/detail?id=25334
http://stackoverflow.com/questions/3358560/google-chrome-inset-box-shadow-bug-on-windows-not-on-mac-better-workaround
它已修复 http://paulirish.com/2011/chrome-inset-box-shadow-bug-fixed/
非常花哨的 CSS 处理,先生!来吧,浏览器们,开始实现这些过渡和转换吧。
花哨的东西!
…但更花哨的是,您能够以任何网页设计师都能理解的水平来解释事物的天赋。
谢谢!
不错,你给了我灵感,让我用 CSS 重现闪烁的加载动画 :D
http://jsfiddle.net/feroc1ty/fTzqJ/
闪烁加载动画做得不错。这给了我关于 logo 和其他想法的灵感。
很好地利用了可用的 CSS3 功能。
非常清晰的解释。
恭喜。
期待 Firefox 实现帧动画。
非常酷
但我无法摆脱这种感觉:帧动画注定会成为新的 <blink>. . . </blink> 和 <marquee>. . .</marquee>。
在 Windows XP 上的 Chrome 9.0.597.94 上无法运行。
酷!
哇.. 真的很棒.. 但是我该如何使用它呢?
或者您可以使用一个可以在 2 分钟内创建且文件大小约为 1.5KB 的流畅 Flash 动画元素。它可以在 *所有* 浏览器中运行!
嘿,如果这就是你想要做的,并且它为你做了很棒的工作,那就给你一个高高的五,伙计。我完全支持可靠的、可用于生产的环境。但我也喜欢学习新事物并推动网络发展。我们已经这样做了很长时间,而且效果非常好。
别担心,当所有主要浏览器都开始支持 CSS3 动画时,就会有用于创建 CSS3 动画的工具(我们快到了)。
例如,现在有用于创建 CSS3 渐变的工具
http://www.colorzilla.com/gradient-editor/
@Adam:如果我们的社会不“渴望”技术进步,我们现在仍然在纸上写字而不是在键盘上打字。
因此,不断推进技术并使 CSS3 越来越接近现实,直到它成为常态,然后 CSS4 将问世,这是非常有用的。
不要扫兴,但是,我该如何将它连接到正在加载的内容?只是说说。
例如,ajax 加载动画图标?=)
我真的很需要这种加载动画。谢谢 Chris。
很棒的作品!期待在网络上看到更多这种类型的动画。
哇!Chris,我从未想过能这样使用 CSS3。干得好,伙计。
它只适用于白色背景。不是一个好的解决方案。
哦!我喜欢这个结果!感谢分享 :)