我正在开发一个网络应用程序;它的设计要求之一是几个大型 CSS3 动画。
具体来说 - 它有一个大<div>
的,将在屏幕上转换以响应用户输入。
由于应用程序的设计方式,其“内容”<div>
可以实现为设置为<div>
背景的大型静态图形(例如,.jpg 或 .png)。
或者,内容也可以使用标准 HTML 来实现。(内容布局本身“有点”棘手——它需要几个浮动或定位的嵌套 div 元素和跨度,但没有什么疯狂的。)
我的问题是 - 哪个选项可能会产生最好(最流畅)的动画?
(我显然可以自己测试,但通常很难判断动画的流畅度,尤其是在各种设备上的十几种不同浏览器中。我也意识到还有其他考虑因素 - 例如,维护。但在这种情况下,我完全专注于动画性能。)
我想知道浏览器是否通常更擅长动画/渲染具有图形背景的简单 DOM 元素,或者更复杂的 DOM 元素(有很多子元素)而没有图形元素?
另外 - 还有其他指导方针吗?例如,
- 浏览器是否比其他类型的图形元素更好地动画化某些类型的图形元素?(例如,.png 与 .jpg)
position:absolute
当子元素有、子元素浮动或子元素的位置由常规文档流确定时,浏览器会更好地为元素设置动画吗?- 嵌套元素上的不透明度、阴影或 3D 变换之类的东西是否会对父元素的动画产生不利影响?
- 动画性能是否会随着元素的复杂性而降低?例如,具有十几层嵌套 DOM 元素的元素的动画效果是否不如仅具有文本节点的简单元素流畅?
我对这些事情有一种直觉(深度嵌套的 DOM 元素的动画效果不如简单元素),但我的直觉常常是错误的。所以,我想知道是否有关于浏览器或多或少工作的“规则”。
当具有大量子元素的大型元素被动画化时,我还应该考虑什么?