当不支持 CSS3 时,我使用 CSS3 过渡和 Jquery .animate() 回退完成了一些项目。
除了我自己的之外,我还有三台测试计算机:
- 6 年以上的笔记本电脑(运行 XP、Athlon 1800+ 和 768Mo 的 Ram)
- 3 年笔记本电脑(运行 Crappy Vista 和双核 Intel CPU 和 2Go 内存)
- 一个 franken 桌面(一些操作系统安装了 P4 和 1Go 的 ram)
我观察到大多数时候,CSS3 的表现更好。
我所说的“表现更好”的意思只是“感觉更好”:我没有尝试对性能进行基准测试,也没有应用科学的测试方法,我的观察不应该只是一种经验感。另请注意,我主要使用 CSS3 过渡而不是 CSS3 动画(即使用关键帧)。
然而,这里的“更好”并不意味着“总是好的”。在较旧的计算机上,Javascript 和 CSS3 同样滞后。如果您的网站是 JS 或 CSS3 重,版本 9 之前的 IE 总是糟糕的体验,版本 8 之前的 IE 总是一个真正的噩梦。v4 之前的 Firefox 在旧计算机上更好,但远非完美。
在所有情况下,必须正确应用 CSS3:例如,我发现将 div 淡化为 opacity: 0 而不设置 display:none 完成后总是一个坏主意... CSS3 过渡非常新,不存在真正的最佳实践,这是试用和现在的错误。
在现代移动设备上(我拥有一些 IOS、Android 和 BBOS 设备),CSS3 总是比 Javascript 好得多:在 iPad 1 上,一个简单的 $('img').fadeOut() 在 CSS3过渡很干净。
因此,总而言之,我的个人(和有限的)经验告诉我们:
- css3 往往比 Js 好,尤其是对于现代移动设备
- 尽管在过度使用时两者都对糟糕的计算机/浏览器组合不利
- 像往常一样,这取决于您的用户。如果他们有最先进的 Macbook,您可以毫无顾忌地使用大量动画。如果他们装备不佳,动画可能会严重阻碍他们的浏览体验。
- 我认为最好的方法是在不支持的情况下使用 Jquery 后备进行 CSS3 转换,并保持简单(即不要一次在三个不同元素上为四个属性设置动画)
我希望它有所帮助。