css3兼容:IE10+、FF、oprea(animation);safari、chrome(-webkit-animation)
js+dom:沒有兼容問題;
js+canvas:IE9+;(性能最好)
性能:
css動畫比JS流暢的前提:
1.chrome基礎的瀏覽器;2.js執行一些昂貴的任務;3.css動畫不觸發layout和paint;(css3和js觸發layout和paint時都會阻塞后續操作)
以下屬性的修改不會觸發layout和paint:
backface-visibility、opacity、perspective、perspective-origin、transform
不同點:
1.時間尺度上,keyframes動畫粒度粗,js的動畫粒度可以很精細;
2.CSS3里被支持的時間函數不多,不夠零活;
3.css3動畫無法做到支持兩個狀態以上的轉換;
4.CSS3更為簡單;
5.對於幀速表現不好的瀏覽器,CSS3可以做到自動優雅降級,JS還需要寫額外的代碼;
6.CSS3動畫有天然的事件支持(AnimationEnd/TransitionEnd)
7.CSS3有兼容性問題。JS沒 有兼容性問題;