現(xiàn)在的網(wǎng)頁設計風格多樣郭厌,個人比較喜歡簡約風的或者交互性強的诫硕。那種有舒服的動畫效果的應用可以給我玩半天钞钙。今天這篇就總結一下CSS3中的動畫屬性和基本應用鳄橘,后面會出一些動畫制作效果。
CSS3中制作動畫需要兩個東西歇竟,一個是@keyframes 規(guī)則,另一個是animation動畫屬性挥唠。由于沒有寫實例,下面貼一篇菜鳥教程上面的實例供參考焕议,先不要閱讀代碼:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鳥教程(runoob.com)</title>
<style>
div
{
width:100px;
height:100px;
background:red;
position:relative;
animation:myfirst 5s linear 2s infinite alternate;
/* Firefox: */
-moz-animation:myfirst 5s linear 2s infinite alternate;
/* Safari and Chrome: */
-webkit-animation:myfirst 5s linear 2s infinite alternate;
/* Opera: */
-o-animation:myfirst 5s linear 2s infinite alternate;
}
@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;}
}
@-moz-keyframes myfirst /* Firefox */
{
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;}
}
@-webkit-keyframes myfirst /* Safari and Chrome */
{
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;}
}
@-o-keyframes myfirst /* Opera */
{
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><b>注意:</b> 該實例在 Internet Explorer 9 及更早 IE 版本是無效的宝磨。</p>
<div></div>
</body>
</html>
代碼看起來較多,但我們只需要關注@keyframes和animation盅安。@keyframes是用來規(guī)定動畫唤锉,后面跟動畫的名稱。指定動畫過程使用%别瞭,或關鍵字"from"和"to"窿祥,這是和0%到100%相同,上面的示例是使用了%的方式蝙寨。animation用來指定動畫屬性晒衩,上面示例中用的是簡略寫法,每個參數(shù)的屬性依次是:
animation: name duration timing-function delay iteration-count direction fill-mode play-state;
分別指定動畫的名稱墙歪、動畫完成所需時間听系、動畫完成一個周期的速度是怎樣的(這個具體是有不同參數(shù)的,可以參考http://www.runoob.com/cssref/css3-pr-animation-timing-function.html)虹菲、動畫啟動前的延遲靠胜、動畫播放次數(shù)(infinite是永久播放)、是否反向播放。最后兩個參數(shù)可以不用指定浪漠,使用默認值陕习,具體作用可參考http://www.runoob.com/cssref/css3-pr-animation.html。