css3動畫用「@keyframes」來自訂規則。 「@keyframes」可以指定動畫規則,定義CSS動畫的一個週期的行為,語法「@keyframes 動畫名稱{keyframes-selector {css-styles;}}」。
本教學操作環境:windows7系統、CSS3&&HTML5版、Dell G3電腦。
@keyframes是CSS3的一種規則,可以用來定義CSS動畫的一個週期的行為,可以創造簡單的動畫。
@keyframes規則裡是由一組封裝的CSS樣式規則組成的,這些規則描述了屬性值如何隨時間變化。
@keyframes animation-name {keyframes-selector {css-styles;}}
keyframes-selector:定義動畫的百分比,它介於0%到100%之間。一個動畫可以包含許多選擇器。
然後,使用不同的CSS animation(動畫)屬性,可以控制動畫的許多不同方面,包括動畫迭代的次數,是否在開始和結束值之間交替,以及動畫是否應該運行或暫停。動畫也可以延遲其開始時間。
@keyframe規則由關鍵字「@keyframe」組成,後面接著是給出動畫名稱的識別碼(將使用animation-name引用),接著是透過一組樣式規則(以大括號分隔) 。然後,透過使用標識符作為animation-name屬性的值,將動畫應用於元素。
語法:
/* 定义动画*/ @keyframes 动画名称{ /* 样式规则*/ } /* 将它应用于元素 */ .element { animation-name: 动画名称(在@keyframes中已经声明好的); /* 或使用动画简写属性*/ animation: 动画名称 1s ... }
在大括號中,我們需要定義關鍵影格或航點,這些關鍵影格或航點指定在動畫期間的特定點處正在動畫化的屬性的值。這允許我們控制動畫序列中的中間步驟。
例如,一個簡單動畫的@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 @keyframes指定動畫規則範例:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <style> div { width: 100px; height: 100px; background: red; position: relative; animation: mymove 5s infinite; -webkit-animation: mymove 5s infinite; /* Safari and Chrome */ } @keyframes mymove { 0% { top: 0px; left: 0px; background: red; } 25% { top: 0px; left: 100px; background: blue; } 50% { top: 100px; left: 100px; background: yellow; } 75% { top: 100px; left: 0px; background: green; } 100% { top: 0px; left: 0px; background: red; } } @-webkit-keyframes mymove /* Safari and Chrome */ { 0% { top: 0px; left: 0px; background: red; } 25% { top: 0px; left: 100px; background: blue; } 50% { top: 100px; left: 100px; background: yellow; } 75% { top: 100px; left: 0px; background: green; } 100% { top: 0px; left: 0px; background: red; } } </style> </head> <body> <div></div> </body> </html>
(學習影片分享:css影片教學# )
以上是css3動畫用什麼自訂規則的詳細內容。更多資訊請關注PHP中文網其他相關文章!