YuJianrong
2015-07-14 14:37:57 +08:00
这要看怎么定义快。
CSS transform+transition(animation): 现在大部分设备(包括移动设备)都提供了GPU加速的transform+transition支持,也就是说用这个做动画流畅度很高(快解释为流畅度的话),但也有缺点,缺点就是在没动画的时候加上动画的话,浏览器渲染器需要将dom render成贴图,再交给GPU去加速的,这里会有一个在部分移动设备上是人眼能觉察的延迟。
CSS + Javascript: 首先做动画的流畅度是肯定不如CSS的,然后响应(快解释为响应的话)要看你的JS是否会导致relayout。如果没有relayout只有repaint的话即使是移动设备响应延迟也几乎无法察觉。
Canvas + Javascript: 响应最好的方案,毕竟没有relayout repaint什么一大堆。缺点是写起来很困难,根本不像在做网页了,流畅度介于以上两方案中间,原因很简单:虽然canvas的描绘是GPU加速的,但每一帧的刷新代码却是JS,自然比纯native的方案流畅度有所降低。