天天看點

Css3之進階-7 Css動畫(概述、關鍵幀、動畫屬性)

一、動畫概述

動畫概念

  - 過渡屬性隻能模拟動畫效果

  - animation 屬性可以制作類似 Flash 動畫

      - 通過關鍵幀控制動畫的每一步

      - 使元素從一種樣式逐漸變化為另一種樣式

      - 實作複雜的動畫效果

  - 浏覽器相容性

      - 最新版本支援良好

      - Chrome 和 Safari 需要字首 -webkit-

      - FireFox 需要字首 -moz-

      - Opera 需要字首 -o-

動畫示例

  - 聲明動畫

      - 建立一個已命名的動畫

      - 使用 @keyframes 聲明動畫的關鍵幀

  - 為元素調用動畫

      - 對元素使用 animation 屬性調用動畫

      - 設定動畫的播放時間,播放次數等

Css3之進階-7 Css動畫(概述、關鍵幀、動畫屬性)

二、關鍵幀

@keyframes 的作用

  - @keyframes 規則用于聲明動畫

      - 指定關鍵幀

  - 幀,用于分解動畫動作

      - 每個幀代表某個時間點

      - 定義每個幀上的動作

@keyframes 的文法

Css3之進階-7 Css動畫(概述、關鍵幀、動畫屬性)

三、動畫屬性

動畫子屬性

  - animation-name: 調用動畫,規定需要綁定到選擇器的 keyframe 的名稱

  - animation-duration: 動畫完成一個周期所需要的時間

      - 取值為數值,機關為秒或者毫秒

  - animation-timing-function: 規定動畫的速度曲線

      - 取值為預定義函數,如ease、linear、ease-in、ease-out、ease-in-out

  - 也可以取值為貝塞爾曲線

  - animation-delay: 播放之前的延遲時間

  - animation-interation-count: 播放次數

      - 取值為數值或者為 infinite

      - infinite,表示無限次數播放

  - animation-direction: 動畫播放方向

      - 取值為normal 或者 alternate

      - normal 為預設值,表示正常播放

      - alternate 表示輪流播放,即動畫會在奇數次數(1、3、5等等)正常播放,而在偶數次數(2、4、6等等)向後播放

animation屬性

  - animation 屬性用于控制動畫

      - 調用由@keyframes 定義的動畫

      - 設定動畫屬性,如時間、次數等

  - animation 屬性是一個簡寫屬性,定義動畫的各方面

  - 文法為:

      - animation: name duration timing-function delay iteration-count direction;

Css3之進階-7 Css動畫(概述、關鍵幀、動畫屬性)
Css3之進階-7 Css動畫(概述、關鍵幀、動畫屬性)

animation-fill-mode屬性

  - 規定動畫在播放之前或之後,其動畫效果是否可見

  - 可取值

      - none:  不改變預設行為

      - forwards: 當動畫完成後,保持最後一個屬性值(在最後一個關鍵幀中定義)

      - backwards: 在動畫顯示之前,應用開始屬性值(在第一個關鍵幀中定義)

      - both: 向前和向後填充模式都被應用

animation-play-state屬性

  - 規定動畫正在運作還是暫停

      - 常用于結合 JavaScript 代碼使用,實作在播放過程中暫停動畫

      - paused : 動畫暫停

      - running: 動畫播放

動畫與過渡

  - 過渡用于制作簡單的動畫效果

  - 動畫可以制作更為複雜的動畫,控制更為精确

繼續閱讀