一般简单的h5动画有3种方法: css3 canvas jq
主要讲这三种的优化和区别
优化方法
是否导致layout,尽可能将动画元素absolute或者fixed化以避免影响文档树,以减少重排;
是否启用硬件加速,开启硬件加速在webkit中有神奇的万金油:opacity: 1;或者-webkit-backface-visibility: hidden;
是否是有高消耗的属性,(css shadow、gradients、background-attachment: fixed等),有的话,图片也是一种选择。这算得上是用空间换时间的优化了。
repaint的面积, 如果是,只好缩小动画面积了。这一步的优化有限;
尽量使用 transform 生成动画,避免使用 height,width,top,left,margin,padding 等, 使用 transform,浏览器只需要一次生成这个元素的位图,并在动画开始的时候将它提交给 GPU 去处理
区别
(用canvas、css3、jquery制作动画.在移动端动画效果上,使用css3动画要比jquery动画效率高的多。在安卓手机上表现尤其明显.所以移动端动画以css3动画为优先,jquery只能用来简单处理应用逻辑.css3动画是用来给内容布局加上特效的通用解决方案,但是在性能堪忧的移动浏览器上很可能会受排版性能所限,达不到理想的效果。而对性能有要求的特定场景,比如游戏,用canvas会有很大的提高.)