您好,登錄后才能下訂單哦!
小編給大家分享一下css動畫是如何組成的,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
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動畫是如何組成的”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。