Animations
其實animation的使用方法跟transition有一點像,
只不過transition通常會跟hover配合,反而animation的用途更廣泛,
使用animation時,須跟@keyframes一起使用。
<!DOCTYPE html> <html> <head> <style> div { width: 100px; height: 100px; background-color: blue; animation-duration: 4s; animation-name: example; } @keyframes example { from {background-color: red;} to {background-color: yellow;} } </style> </head> <body> <p><b>Note:</b> This example does not work in Internet Explorer 9 and earlier versions.</p> <div></div> <p><b>Note:</b> When an animation is finished, it changes back to its original style.</p> </body> </html>
上例先設定div最終顏色為藍色與設定animation的作用時間為4秒,
並設定animation-name名稱指到關鍵字@keyframes所宣告的名為example名稱,
example名稱內容為指定某屬性從某狀態變化到某狀態。
另一個例子為將@keyframes的狀態分成更多段的變化與加入更多變化屬性。
<!DOCTYPE html> <html> <head> <style> div { width: 100px; height: 100px; background-color: red; position: relative; animation-name: example; animation-duration: 4s; } @keyframes example { 0% {background-color:red; left:0px; top:0px;} 25% {background-color:yellow; left:200px; top:0px;} 50% {background-color:blue; left:200px; top:200px;} 75% {background-color:green; left:0px; top:200px;} 100% {background-color:red; left:0px; top:0px;} } </style> </head> <body> <p><b>Note:</b> This example does not work in Internet Explorer 9 and earlier versions.</p> <div></div> </body> </html>
1、animation-delay
用法與tranistion相同,表示一開始先延遲 n 秒再動作。
2、animation-duration
用法與tranistion相同,指定作用期間為 n 秒。
3、animation-timing-function
用法與tranistion相同,指定時間曲線。
4、animation-direction
<!DOCTYPE html> <html> <head> <style> div { width: 100px; height: 100px; background: red; position: relative; animation: myfirst 5s infinite; animation-direction: alternate-reverse; } @keyframes myfirst { 0% {background: red; left: 0px; top: 0px;} 25% {background: yellow; left: 200px; top: 0px;} 50% {background: blue; left: 200px; top: 200px;} 75% {background: green; left: 0px; top: 200px;} 100% {background: red; left: 0px; top: 0px;} } </style> </head> <body> <p><strong>Note:</strong> The animation-direction property is not supported in Internet Explorer 9 and earlier versions.</p> <div></div> </body> </html>
其值可為normal(預設值)、reverse、alternate、alternate-reverse
(1)、normal
其狀態由0%播到100%
(2)、reverse
其狀態由100%播到0%
(3)、alternate
播放次數為奇數次時其狀態由0%播到100%,反之其狀態由100%播到0%
(4)、alternate-reverse
播放次數為奇數次時其狀態由100%播到0%,反之其狀態由0%播到100%
5、animation-fill-mode
主要有四個值功能如下
(1)、none 此為預設值,當動畫播到結束時,會回到原來的初始值
(2)、forwards 此功能會保留動畫播到完成的值
(3)、backwards 停在動畫的第一個狀態上
(4)、both 視 animation-direction 來決定停在哪一個狀態上。
6、animation-iteration-count
意指動畫的重播次數,預設值為1,也可以指定為infinite(無限次數)
7、animation-play-state
用來決定動畫為播放或暫停,其值可為running(預設值)、paused
8、animation簡寫
其簡寫格式為animation: name duration timing-function delay iteration-count direction fill-mode play-state;
9、animation-name與@keyframes
在使用動畫時,關鍵字@keyframes所宣告的名稱,可以讓animation-name來指定。
參考資料: