css動畫是由關鍵影格、動畫屬性和css屬性三部分組成的。關鍵影格用於定義動畫在不同階段的狀態;動畫屬性用於決定動畫的播放時長,播放次數,以及用何種函數式去播放動畫等;css屬性用於指定css元素在不同關鍵影格下的狀態。
本教學操作環境:windows7系統、CSS3&&HTML5版、Dell G3電腦。
css動畫是由三個部分組成,分別為關鍵影格(keyframes)、動畫屬性(properties)、css屬性。
關鍵影格(keyframes) - 定義動畫在不同階段的狀態。
動畫屬性(properties) - 決定動畫的播放時長,播放次數,以及用何種函數式去播放動畫等。 (可類比音視訊播放器)
css屬性 - 指定css元素不同關鍵影格下的狀態。
1、關鍵影格
#使用@keyframes規則指定,可以用來定義CSS動畫的一個週期的行為,可以創造簡單的動畫。
動畫與轉換類似,因為它們都是隨時間改變CSS屬性的表示值。主要差異在於,當屬性值變更時(例如,當懸停時屬性值發生變化時),轉換會隱式的觸發,但在套用動畫屬性時會明確執行動畫。因此,動畫需要顯示動畫屬性的明確值。這些值是在@keyframes規則中指定的動畫關鍵影格定義的。因此,@keyframes規則裡是由一組封裝的CSS樣式規則組成的,這些規則描述了屬性值如何隨時間變化。
2、動畫屬性
透過@keyframes創建了動畫,就需要animation(動畫)屬性將動畫應用於元素,並設定動畫迭代的次數,是否在開始和結束值之間交替,以及動畫是否應該運行或暫停。
動畫屬性可以理解為播放器的相關功能,一個最基本的播放器應該具有:播放/暫停、播放時間長度、播放順序(逆序/正序/交替播放)、循環次數等。
animation:
[animation-name] [animation-duration] // 動畫的名稱、持續時間
[animation-timing-function][animation-delay] // 關於時間的函數(properties/t)、延遲時間
[animation-iteration-count] [animation-direction] // 播放次數、播放順序
[animation-fill-mode] [animation-play-state] ; // 播放前或停止後設定對應樣式、控制動畫運行或暫停
關鍵影格動畫屬性的語法:
/* 定义动画*/ @keyframes 动画名称{ /* 样式规则*/ } /* 将它应用于元素 */ .element { animation-name: 动画名称(在@keyframes中已经声明好的); /* 或使用动画简写属性*/ animation: 动画名称 1s ... }
在@keyframes規則的大括號裡面有什麼?
在大括號中,我們需要定義關鍵影格或航點,這些關鍵影格或航點指定在動畫期間的特定點處正在動畫化的屬性的值。這允許我們控制動畫序列中的中間步驟。例如,一個簡單動畫的@keyframe可以是這樣:
@keyframes change-bg-color { 0% { background-color: red; } 50% { background-color: blue; } 100%{ background-color: red; } } .demo{ -webkit-animation:change-bg-color 5s infinite; animation: change-bg-color 5s infinite; }
運行效果:
#'0%'、'50%'、'100% '都是關鍵影格選擇器,每個選擇器定義一個關鍵影格規則。關鍵幀規則的關鍵幀聲明區塊由屬性和值組成。
上述動畫類似於簡單的過渡效果:背景顏色從動畫開頭的一個值(0%)開始變化,在中間達到一個值(50%),在動畫結束時達到另一個值(100 %)。 「0%」、」50%」和「100%」關鍵幀選擇器定義了希望動畫屬性更改值的航點或百分點。我們也可以使用選擇器關鍵字 from,to而不是分別使用0%和100%,它們是等效的。
@keyframes change-bg-color { from{ background-color: red; } 50% { background-color: blue; } to{ background-color: red; } }
關鍵影格選擇器由一個或多個以逗號分隔的百分比值或from和to關鍵字組成。請注意,百分比單位說明符必須用於百分比值。因此,'0'是無效的關鍵幀選擇器。
以下是具有關鍵影格選擇器的動畫範例,其中包含多個以逗號分隔的百分比值和/或關鍵字關鍵影格選擇器from和to。
@keyframes bouncing { 0%, 50%, 100% { /* 或者 from, 50%, to */ top: 0; } 25%, 75% { top: 100px; } }
上面的@keyframes規則定義:元素的頂部偏移量在開始時,中途和動畫結束時將等於零,並且它將四分之一和四分之三路徑時等於100px; 這意味著元素在動畫循環中上下移動了好幾次。
(學習影片分享:css影片教學)
以上是css動畫是由什麼組成的詳細內容。更多資訊請關注PHP中文網其他相關文章!