?
本文檔使用 php中文網(wǎng)手冊(cè) 發(fā)布
@keyframes <identifier> { <keyframes-blocks> }
<keyframes-blocks>:[ [ from | to | <percentage> ]{ sRules } ] [ [ , from | to | <percentage> ]{ sRules } ]*
<identifier>:identifier定義一個(gè)動(dòng)畫名稱
<keyframes-blocks>:定義動(dòng)畫在每個(gè)階段的樣式,即幀動(dòng)畫。
@keyframes定義的動(dòng)畫名稱用來被animation-name所使用。
定義動(dòng)畫時(shí),簡單的動(dòng)畫可以直接使用關(guān)鍵字from和to,即從一種狀態(tài)過渡到另一種狀態(tài):
示例代碼:
@keyframes testanimations {
from { opacity: 1; }
to { opacity: 0; }
}
其中testanimations是該動(dòng)畫的名字,該動(dòng)畫表示某個(gè)東西將逐漸消失。
如果復(fù)雜的動(dòng)畫,可以混合<percentage>去設(shè)置某個(gè)時(shí)間段內(nèi)的任意時(shí)間點(diǎn)的樣式:
示例代碼:
@keyframes testanimations {
from { transform: translate(0, 0); }
20% { transform: translate(20px, 20px); }
40% { transform: translate(40px, 0); }
60% { transform: translate(60px, 20); }
80% { transform: translate(80px, 0); }
to { transform: translate(100px, 20px); }
}
當(dāng)然,也可以不使用關(guān)鍵字from和to,而都使用<percentage>:
示例代碼:
@keyframes testanimations{ 0% { transform: translate(0, 0); } 20% { transform: translate(20px, 20px); } 40% { transform: translate(40px, 0); } 60% { transform: translate(60px, 20px); } 80% { transform: translate(80px, 0); } 100% { transform: translate(100px, 20px); } }
注意,這里的0%不能簡寫成0,0是非標(biāo)準(zhǔn)語法(雖然被某些瀏覽器所支持)。
IE | Firefox | Chrome | Safari | Opera | iOS Safari | Android Browser | Android Chrome |
---|---|---|---|---|---|---|---|
6.0-9.0 | 2.0-4.0 | 4.0-43.0 -webkit- | 3.1-3.2 | 15.0-29.0 -webkit- | 3.2-8.1 -webkit- | 2.1-3.0 -webkit- | 18.0-40.0 -webkit- |
10.0+ | 5.0-15.0 -moz- | 4.0-8.1 -webkit- | 4.0+ -webkit- | ||||
16.0 |
<!DOCTYPE html> <html lang="zh-cmn-Hans"> <head> <meta charset="utf-8" /> <title>@keyframes_CSS參考手冊(cè)_web前端開發(fā)參考手冊(cè)系列</title> <meta name="author" content="Joy Du(飄零霧雨), dooyoe@gmail.com, www.doyoe.com" /> <style> #sport{position:relative;width:500px;height:400px;border:1px solid #ddd;} #staff{position:absolute;z-index:3;bottom:10px;left:10px;overflow:hidden;width:180px;height:8px;border-radius:3px;background:#ddd;line-height:20; -webkit-animation:staff 3s linear; animation:staff 3s linear; } #ball{position:absolute;z-index:3;bottom:20px;left:90px;overflow:hidden;width:30px;height:30px;border-radius:15px;box-shadow:0 0 10px rgba(204,102,0,.8);background:#F6D66E;background:linear-gradient(top,#fff,#F6D66E);line-height:20; -webkit-animation:ball 3s linear; animation:ball 3s linear; } @-webkit-keyframes ball{ 0%{-webkit-transform:translate(0,0);} 5%{-webkit-transform:translate(-90px,-100px);} 18%{-webkit-transform:translate(0,-350px);} 35%{-webkit-transform:translate(200px,0);} 46%{-webkit-transform:translate(380px,-160px);} 60%{-webkit-transform:translate(250px,-350px);} 78%{-webkit-transform:translate(60px,0);} 100%{-webkit-transform:translate(0,0);} } @keyframes ball{ 0%{transform:translate(0,0);} 5%{transform:translate(-90px,-100px);} 18%{transform:translate(0,-350px);} 35%{transform:translate(200px,0);} 46%{transform:translate(380px,-160px);} 60%{transform:translate(250px,-350px);} 78%{transform:translate(60px,0);} 100%{transform:translate(0,0);} } @-webkit-keyframes staff{ 0%{-webkit-transform:translate(0,0);} 6%{-webkit-transform:translate(260px,0);} 20%{-webkit-transform:translate(300px,0);} 30%{-webkit-transform:translate(300px,0);} 40%{-webkit-transform:translate(200px,0);} 65%{-webkit-transform:translate(40px,0);} 79%{-webkit-transform:translate(0,0);} 100%{-webkit-transform:translate(0,0);} } @keyframes staff{ 0%{transform:translate(0,0);} 6%{transform:translate(260px,0);} 20%{transform:translate(300px,0);} 30%{transform:translate(300px,0);} 40%{transform:translate(200px,0);} 65%{transform:translate(40px,0);} 79%{transform:translate(0,0);} 100%{transform:translate(0,0);} } </style> </head> <body> <div id="sport"> <span id="ball">彈球</span> <span id="staff">滑桿</span> </div> </body> </html>
點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例