demo 1:使用gif

优点:简单,直接导个gif引入就完事。

弊端:图片太大了,demo只有一个slogan动图都去到了866KB,太多的gif对页面的渲染速度有影响,用户体验不是最佳。

demo 2:使用定时器(更换图片src)

优点:简单,批量导出每一帧的png素材出来,定时替换图片的地址就完事(而且每一帧的素材都不会很大)。

弊端:需要频繁的更新DOM,性能方面开销太大,并且如果不注意定时器回收,容易造成内存泄露。

demo 3:使用定时器(更换className)

优缺点跟demo 2类似……

demo 4:css3逐帧动画

优点:简单,性能好,生成雪碧图,然后写个动画就完事。

弊端:部分古董设备不兼容,然后还有个问题,就是像demo里的这个素材,做成雪碧图贼他妈大(2.24MB,经过tinypin压缩后还是有640KB),所以素材太大的情况下,最好不要用这个办法来搞。

demo 5:生成canvas

优点:设计师处理好每一帧,导出每一帧的png素材出来,这样每一帧的素材都不会很大。并且canvas在性能上有天然的优势,对于高频率的更新渲染,用canvas重绘来实现效果更佳。

弊端:古董机对canvas的兼容性不太友好,如果可以抛弃这些古董用户的话,还是推荐这个方案!