更新時間:2021-01-22 來源:黑馬程序員 瀏覽量:
JS動畫
缺點:
1)JavaScript在瀏覽器的主線程中運行,而主線程中還有其它需要運行的JavaScript腳本、樣式計算、布局、繪制任務(wù)等,對其干擾導(dǎo)致線程可能出現(xiàn)阻塞,從而造成丟幀的情況。
2)代碼的復(fù)雜度高于CSS動畫
優(yōu)點:
1)JavaScript動畫控制能力很強, 可以在動畫播放過程中對動畫進行控制:開始、暫停、回放、終止、取消都是可以做到的。
2)動畫效果比css3動畫豐富,有些動畫效果,比如曲線運動,沖擊閃爍,視差滾動效果,只有JavaScript動畫才能完成
3)CSS3有兼容性問題,而JS大多時候沒有兼容性問題
CSS動畫
缺點:
1)運行過程控制較弱,無法附加事件綁定回調(diào)函數(shù)。CSS動畫只能暫停,不能在動畫中尋找一個特定的時間點,不能在半路反轉(zhuǎn)動畫,不能變換時間尺度,不能在特定的位置添加回調(diào)函數(shù)或是綁定回放事件,無進度報告
2)代碼冗長。想用 CSS 實現(xiàn)稍微復(fù)雜一點動畫,最后CSS代碼都會變得非常笨重。
優(yōu)點:
瀏覽器可以對動畫進行優(yōu)化。
瀏覽器使用與 requestAnimationFrame 類似的機制,requestAnimationFrame比起setTimeout,setInterval設(shè)置動畫的優(yōu)勢主要是:
A)requestAnimationFrame 會把每一幀中的所有DOM操作集中起來,在一次重繪或回流中就完成,并且重繪或回流的時間間隔緊緊跟隨瀏覽器的刷新頻率,一般來說,這個頻率為每秒60幀。
B)在隱藏或不可見的元素中requestAnimationFrame不會進行重繪或回流,這當(dāng)然就意味著更少的的cpu,gpu和內(nèi)存使用量。
強制使用硬件加速 (通過 GPU 來提高動畫性能)
猜你喜歡:
【AI設(shè)計】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設(shè)計連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運營】深圳跨境電商運營畢業(yè)22個工作日,就業(yè)率91%+,最高薪資達13500元
2025-09-19【AI運維】鄭州運維1期就業(yè)班,畢業(yè)14個工作日,班級93%同學(xué)已拿到Offer, 一線均薪資 1W+
2025-09-19【AI鴻蒙開發(fā)】上海校區(qū)AI鴻蒙開發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19【AI大模型開發(fā)-Python】畢業(yè)33個工作日,就業(yè)率已達到94.55%,班均薪資20763元
2025-09-19【AI智能應(yīng)用開發(fā)-Java】畢業(yè)當(dāng)天offer率91%,薪資1W+占比54.2%,班級均薪12k+
2025-09-19