動畫的實(shí)現(xiàn)方式有以下幾種方式:js汇恤、css、canvas拔恰、gif
- gif對透明效果支持不好因谎,比較方便,但是現(xiàn)在動畫基本帶有透明效果(不推薦颜懊,內(nèi)心OS~為啥不普及apng财岔?风皿??)
- css實(shí)現(xiàn)效率比較高匠璧,通過用雪碧圖當(dāng)背景桐款,再控制背景圖顯示的位置,但是視頻轉(zhuǎn)為雪碧圖太大了
- js實(shí)現(xiàn)比較靈活患朱,交互性高鲁僚,實(shí)現(xiàn)方法也有幾種:
1、通過js切換<img>標(biāo)簽的src(不推薦)
2裁厅、通過js切換background的url(不推薦)
3冰沙、通過js移動雪碧圖的顯示位置,類似css的實(shí)現(xiàn)方式执虹,但是可以在此基礎(chǔ)上添加交互
4拓挥、使用appendChild()和removeChild(),效率較高袋励,即使幀數(shù)較多也不成問題(推薦)侥啤,參考《炫酷H5中序列圖片視頻化播放的高性能實(shí)現(xiàn)》
另外也可使用Airbnb的LottieJS庫《LottieJS庫》,配合AE插件-bodymovin茬故,即可把AE工程導(dǎo)出為json文件盖灸,兼容性有待測試,AE里粒子等復(fù)雜的動畫效果不能實(shí)現(xiàn)磺芭。
把動畫導(dǎo)出成canvas的方式還是使用adobe的AnimateCC(前身flash)比較成熟赁炎。
————————————————2020/06/18 分割線————————————————————
經(jīng)過幾個動畫項(xiàng)目后,去他*的序列幀钾腺、雪碧圖0.0徙垫,2D動畫還是Adobe Animate省事