css keyframes是CSS3的一種規則,可以用來定義CSS動畫的一個週期的行為,可以創建簡單的動畫;keyframe規則由關鍵字“@keyframe”組成,後面接著是給出動畫名稱的識別符。
本文操作環境:windows10系統、css3、thinkpad t480電腦。
推薦:《css影片教學》
CSS @keyframes是什麼?有什麼用?
@keyframes是CSS3的一種規則,可以用來定義CSS動畫的一個週期的行為,可以創造簡單的動畫。
動畫與轉換類似,因為它們都是隨時間改變CSS屬性的表示值。主要差異在於,當屬性值變更時(例如,當懸停時屬性值發生變化時),轉換會隱式的觸發,但在套用動畫屬性時會明確執行動畫。因此,動畫需要顯示動畫屬性的明確值。這些值是在@keyframes規則中指定的動畫關鍵影格定義的。因此,@keyframes規則裡是由一組封裝的CSS樣式規則組成的,這些規則描述了屬性值如何隨時間變化。
然後,使用不同的CSS animation(動畫)屬性,可以控制動畫的許多不同方面,包括動畫迭代的次數,是否在開始和結束值之間交替,以及動畫是否應該運行或暫停。動畫也可以延遲其開始時間。
@keyframe規則由關鍵字「@keyframe」組成,後面接著是給出動畫名稱的識別碼(將使用animation-name引用),接著是透過一組樣式規則(以大括號分隔) 。然後,透過使用標識符作為animation-name屬性的值,將動畫應用於元素。
css @keyframes的使用範例:
#1、定義動畫發生的空間
HTML程式碼:
<div class="container"> <div class="element"></div> </div>
2、使用@keyframes規則建立簡單動畫
css程式碼
body { background-color: #fff; color: #555; font-size: 1.1em; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; } .container { margin: 50px auto; min-width: 320px; max-width: 500px; } .element { margin: 0 auto; width: 100px; height: 100px; background-color: #0099cc; border-radius: 50%; position: relative; top: 0; -webkit-animation: bounce 2s infinite; animation: bounce 2s infinite; } @-webkit-keyframes bounce { from { top: 100px; -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } 25% { top: 50px; -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } 50% { top: 150px; -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } 75% { top: 75px; -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } to { top: 100px; } } @keyframes bounce { from { top: 100px; -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } 25% { top: 50px; -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } 50% { top: 150px; -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } 75% { top: 75px; -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } to { top: 100px; } }
3、運行效果
在在上面的範例中,為名為「bounce」的動畫指定了五個關鍵影格。在第一和第二關鍵影格之間(即,在'0%'和'25%'之間),使用ease-out定時功能。在第二和第三關鍵影格之間(即,在'25%'和'50%'之間),使用ease-in定時功能,等等。效果將顯示為向上移動50px的元素,在達到其最高點時減慢,然後在它回落到150px時加速。動畫的後半部以類似的方式運行,但僅將元素向上移動25px。此動畫產生一個彈跳效果,可用於模擬彈跳球動畫。
說明:
@keyframes規則不級聯 ; 因此,動畫永遠不會從多個@keyframes規則派生關鍵影格。
要確定關鍵影格集,選擇器中的所有值都需依時間遞增排序。如果存在任何重複項(例如,如果我們編寫了兩個'50%'關鍵幀規則和聲明區塊),則@keyframes規則將指定最後一個關鍵幀用於提供該時間的關鍵幀資訊。 @keyframes如果多個關鍵影格指定相同的關鍵影格選擇器值,則規則中沒有級聯。
以上是css keyframes 是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!