CSS3動畫和JS+DOM動畫的比較

JS動畫

  • js+dom:沒有兼容問題炫乓;

優(yōu)點:
js動畫控制能力強蒸矛,可以在動畫播放過程中對動畫進行精細控制,開始锻拘、暫停绪杏、終止下愈、取消都是可以做到的
動畫效果比css3動畫豐富,比如曲線運動蕾久,沖擊閃爍势似,視差滾動效果,只有js動畫才能完成
js動畫大多數(shù)情況下沒有兼容性問題僧著,而css3動畫有兼容性問題

缺點:
js動畫的復雜度高于css3
js在動畫瀏覽器的主線程中執(zhí)行履因,而主線程還有其他javaScript腳本,樣式計算盹愚、布局栅迄、繪制任務等,對其干擾可能出現(xiàn)阻塞從而出現(xiàn)丟幀的情況
js動畫往往需要頻繁操作DOM的css屬性來實現(xiàn)視覺上的動畫效果皆怕,這個時候瀏覽器要不停地執(zhí)行重繪和重排毅舆,這對于性能的消耗是很大的,尤其是在分配給瀏覽器的內存沒那么寬裕的移動端愈腾。

CSS3動畫

  • css3兼容:IE10+憋活、FF、oprea(animation)虱黄;safari悦即、chrome(-webkit-animation)

優(yōu)點:
部分情況下瀏覽器可以對動畫進行優(yōu)化,為什么說部分情況下呢橱乱,因為是有條件的:在Chromium基礎上的瀏覽器中
同時CSS動畫不觸發(fā)layout或paint辜梳,在CSS動畫或JS動畫觸發(fā)了paint或layout時,需要main thread進行Layer樹的重計算仅醇,這時CSS動畫或JS動畫都會阻塞后續(xù)操作冗美。部分效果可以強制使用硬件加速 (通過 GPU 來提高動畫性能)

缺點:
運行進程控制較弱,css3動畫只能在某些場景下控制動畫的暫停與繼續(xù)析二,不能在特定的位置添加添加回調函數(shù)

總結

區(qū)別:
  • 1.時間尺度上粉洼,keyframes動畫粒度粗,js的動畫粒度可以很精細叶摄;
  • 2.CSS3里被支持的時間函數(shù)不多属韧,不夠零活;
  • 3.css3動畫無法做到支持兩個狀態(tài)以上的轉換蛤吓;
  • 4.CSS3更為簡單宵喂;
  • 5.對于幀速表現(xiàn)不好的瀏覽器,CSS3可以做到自動優(yōu)雅降級会傲,JS還需要寫額外的代碼锅棕;
  • 6.CSS3動畫有天然的事件支持(AnimationEnd/TransitionEnd)
  • 7.CSS3有兼容性問題拙泽。
性能上:

js在動畫瀏覽器的主線程中執(zhí)行,而主線程還有其他javaScript腳本裸燎,樣式計算顾瞻、布局、繪制任務等德绿,對其干擾可能出現(xiàn)阻塞從而出現(xiàn)丟幀的情況

css動畫比js動畫流暢的前提

  • 1.chrome基礎的瀏覽器荷荤;
  • 2.js執(zhí)行一些昂貴的任務;
  • 3.css動畫不觸發(fā)layout和paint移稳;(css3和js觸發(fā)layout和paint時都會阻塞后續(xù)操作)

以下屬性的修改不會觸發(fā)layout和paint:
backface-visibility
opacity
perspective (設置元素視圖)
perspective-origin
transfrom
部分屬性能夠啟動3D加速和GPU硬件加速蕴纳,例如使用transform的translateZ進行3D變換時
在Chromium基礎上的瀏覽器中,這個貌似是內核做了優(yōu)化个粱,當css動畫知識改變transfrom和opacity時古毛,整個CSS動畫得以在compositor thread完成(而JS動畫則會在main thread執(zhí)行),這樣css動畫渲染不會影響主線程。

回歸到日常開發(fā)中几蜻,當有一個動畫的需求時喇潘,首要考慮的肯定是能不能盡可能實現(xiàn)的問題体斩。如果在CSS動畫和JS動畫都能實現(xiàn)的基礎上才會要去根據(jù)上面總結的權衡哪個性能更好的問題梭稚。

注:在最新的瀏覽器進行運行測試時會發(fā)現(xiàn),其實兩者的加載速度差別很小絮吵,所以具體的選擇需要看具體的需求和業(yè)務來進行選擇

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末弧烤,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蹬敲,更是在濱河造成了極大的恐慌暇昂,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件伴嗡,死亡現(xiàn)場離奇詭異急波,居然都是意外死亡,警方通過查閱死者的電腦和手機瘪校,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門澄暮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人阱扬,你說我怎么就攤上這事泣懊。” “怎么了麻惶?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵馍刮,是天一觀的道長。 經(jīng)常有香客問我窃蹋,道長卡啰,這世上最難降的妖魔是什么静稻? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮匈辱,結果婚禮上姊扔,老公的妹妹穿的比我還像新娘。我一直安慰自己梅誓,他們只是感情好恰梢,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著梗掰,像睡著了一般嵌言。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上及穗,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天摧茴,我揣著相機與錄音,去河邊找鬼埂陆。 笑死苛白,一個胖子當著我的面吹牛,可吹牛的內容都是我干的焚虱。 我是一名探鬼主播购裙,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼鹃栽!你這毒婦竟也來了躏率?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤民鼓,失蹤者是張志新(化名)和其女友劉穎薇芝,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丰嘉,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡夯到,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了饮亏。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片耍贾。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖克滴,靈堂內的尸體忽然破棺而出逼争,到底是詐尸還是另有隱情,我是刑警寧澤劝赔,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布誓焦,位于F島的核電站,受9級特大地震影響,放射性物質發(fā)生泄漏杂伟。R本人自食惡果不足惜移层,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望赫粥。 院中可真熱鬧观话,春花似錦、人聲如沸越平。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽秦叛。三九已至晦溪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間挣跋,已是汗流浹背三圆。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留避咆,地道東北人舟肉。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像查库,于是被迫代替她去往敵國和親路媚。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內容