13. 動畫

之前介紹的transition應也算是動畫的一部分,此處介紹另一製作方式: 使用keyframesdisplay: flex;來實現。主要流程如下,前面四項必須給定:
  1. animation-name: 命名欲成為動畫的物件,這樣才知道要作用在那個物件身上
  2. animation-duration: 確認動畫作用時間,例如5s。
  3. 給元件初始狀態: 例如background: blue 或 position: relative。
  4. from, to, %: 給每個階段的狀態,from=0%, to=100%
  5. animation-delay: 設定delay時間,也就是經過幾秒才開始動畫。 如果給的時間是負數,例如-2s,表示從2s時間開始動畫
  6. animation-iteration-count: 動畫重複次數,infinite表示無限循環
  7. animation-direction: 設定動畫方向,可用參數如下:
    • normal: 正常方向
    • reverse: 反向
    • alternate: 先正向再反向
    • alternate-reverse: 先反向再正向
  8. animation-timing-function: 給時間函數,可用參數如下:
    • ease: 開始結束慢,中間快(預設值)
    • linear: 均速
    • ease-in: 開始慢
    • ease-out: 結束慢
    • ease-in-out: 開始結束慢
    • cubic-bezier(n,n,n,n): 自定義速度
  9. animation: name duration timefunction delay iteration direction: 簡寫
舉例說明,首先先設計一個方塊,html元件如下: