js動畫和css3動畫的區別


JS動畫(逐幀動畫)

  首先,在js動畫是逐幀動畫,是在時間幀上逐幀繪制幀內容,由於是一幀一幀的話,所以他的可操作性很高,幾乎可以完成任何你想要的動畫形式。但是由於逐幀動畫的幀序列內容不一樣,會增加制作負擔,且資源占有比較大。但它的優勢也很明顯:因為它相似與電影播放模式,很適合於表演很細膩的動畫,如3D效果、人物或動物急劇轉身等等效果。但是,如果幀率過低的話,會幀與幀之間的過渡很可能會不自然、不連貫。

  js是單線程的腳本語言,當js在瀏覽器主線程運行時,主線程還有其他需要運行的js腳本、樣式、計算、布局、交互等一系列任務,對其干擾線程可能出現阻塞,造成丟幀的情況。

  其次,js在做動畫的時候,其復雜度是高於css3的,需要考慮一些計算,操作等方便問題。

  但是正是由於js對動畫的操作復雜度比較高,能對動畫有一個比較好的控制,如開始、暫定、回放、終止、取幀等,可以很精確的做到。因此可以js可以通過操作DOM和BOM來做一些酷炫的動態效果,以及爆炸特效,且兼容性比較好。

css3(補間動畫)

  制作方法簡單方便。只需確定第一幀和最后一幀的關鍵位置即可,兩個關鍵幀之間幀的內容由Flash自動生成,不需要人為處理。當然也可以多次添加關鍵幀的位置。

  因為只設置幾個關鍵幀的位置,所以在進行動畫控制的時候時比較弱的。不能夠在半路暫停動畫,或者在動畫過程中不能對其進行一些操作等。

  css3在實現一些簡單的滑動,翻轉等特效的時候會很方便,但是想要做到一些酷炫的效果的時候,其操作往往可能會比js操作有更多的冗余。

  css3在做動畫的時候,瀏覽器可以對其進行一些優化,會比js使用更少的占用cpu資源,但是效果足夠流暢。

結論

  如果動畫只是一些簡單的狀態切換,滑動等效果,不需要中間的控制過程,css3是比較好的選擇,它直接在css文件中就可以實現,並不需要引入太多的js庫。而你想做一些復雜的客戶端界面,開發一個復雜ui的app,實現一個復雜紋理動畫等,需要對頁面進行精准的控制計算,js是不錯的選擇。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM