animation 和 transition 的區別


  animation 可以用 name 設置動畫的名稱,用 duration 設置動畫完成的周期,用 timing-function 設置動畫的速度曲線,delay 設置動畫什么時候開始,iteration-count 設置動畫播放的次數,direction 規定下一個周期是否逆向的播放,play-state 動畫是否正在進行或者暫停,fill-mode 設置動畫停了之后位置什么狀態

  transition 用 property 去設置過渡效果的屬性名稱,duration 設置過渡效果的周期,timing-function 規定速度效果的速度曲線,delay 設定過渡效果什么時候開始;

  

  區別:

    1、transition 是過渡,是樣式值的變化的過程,只有開始和結束;animation 其實也叫關鍵幀,通過和 keyframe 結合可以設置中間幀的一個狀態;

    2、animation 配合 @keyframe 可以不觸發時間就觸發這個過程,而 transition 需要通過 hover 或者 js 事件來配合觸發;

    3、animation 可以設置很多的屬性,比如循環次數,動畫結束的狀態等等,transition 只能觸發一次;

    4、animation 可以結合 keyframe 設置每一幀,但是 transition 只有兩幀;

    5、在性能方面:瀏覽器有一個主線程和排版線程;主線程一般是對 js 運行的、頁面布局、生成位圖等等,然后把生成好的位圖傳遞給排版線程,而排版線程會通過 GPU 將位圖繪制到頁面上,也會向主線程請求位圖等等;我們在用使用 aniamtion 的時候這樣就可以改變很多屬性,像我們改變了 width、height、postion 等等這些改變文檔流的屬性的時候就會引起,頁面的回流和重繪,對性能影響就比較大,但是我們用 transition 的時候一般會結合 tansfrom 來進行旋轉和縮放等不會生成新的位圖,當然也就不會引起頁面的重排了;


免責聲明!

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



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