Latest web development tutorials

CSS3 動畫

CSS3 動畫

CSS3,我們可以創建動畫,它可以取代許多網頁動畫圖像,Flash動畫,和JAVAScripts。


CSS3
動畫

CSS3 @keyframes 規則

要創建CSS3動畫,你將不得不了解@keyframes規則。

@keyframes規則是創建動畫。 @keyframes規則內指定一個CSS樣式和動畫將逐步從目前的樣式更改為新的樣式。


瀏覽器支持

表格中的數字表示支持該屬性的第一個瀏覽器版本號。

緊跟在-webkit-, -ms- 或-moz- 前的數字為支持該前綴屬性的第一個瀏覽器版本號。

属性
@keyframes 43.0
4.0 -webkit-
10.0 16.0
5.0 -moz-
9.0
4.0 -webkit-
30.0
15.0 -webkit-
12.0 -o-
animation 43.0
4.0 -webkit-
10.0 16.0
5.0 -moz-
9.0
4.0 -webkit-
30.0
15.0 -webkit-
12.0 -o-

OperaSafariChromeFirefoxInternet Explorer

實例

@keyframes myfirst
{
from {background: red;}
to {background: yellow;}
}

@-webkit-keyframes myfirst /* Safari and Chrome */
{
from {background: red;}
to {background: yellow;}
}


CSS3 動畫

當在@keyframes創建動畫,把它綁定到一個選擇器,否則動畫不會有任何效果。

指定至少這兩個CSS3的動畫屬性綁定向一個選擇器:

  • 規定動畫的名稱
  • 規定動畫的時長
OperaSafariChromeFirefoxInternet Explorer

實例

把"myfirst" 動畫捆綁到div 元素,時長:5 秒:

div
{
animation: myfirst 5s;
-webkit-animation: myfirst 5s; /* Safari and Chrome */
}

嘗試一下»

注意:您必須定義動畫的名稱和動畫的持續時間。如果省略的持續時間,動畫將無法運行,因為默認值是0。


CSS3動畫是什麼?

動畫是使元素從一種樣式逐漸變化為另一種樣式的效果。

您可以改變任意多的樣式任意多的次數。

請用百分比來規定變化發生的時間,或用關鍵詞"from" 和"to",等同於0% 和100%。

0% 是動畫的開始,100% 是動畫的完成。

為了得到最佳的瀏覽器支持,您應該始終定義0% 和100% 選擇器。

OperaSafariChromeFirefoxInternet Explorer

實例

當動畫為25% 及50% 時改變背景色,然後當動畫100% 完成時再次改變:

@keyframes myfirst
{
0% {background: red;}
25% {background: yellow;}
50% {background: blue;}
100% {background: green;}
}

@-webkit-keyframes myfirst /* Safari and Chrome */
{
0% {background: red;}
25% {background: yellow;}
50% {background: blue;}
100% {background: green;}
}

嘗試一下»

OperaSafariChromeFirefoxInternet Explorer

實例

改變背景色和位置:

@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;}
}

@-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;}
}

嘗試一下»


CSS3的動畫屬性

下面的表格列出了@keyframes 規則和所有動畫屬性:

屬性 描述 CSS
@keyframes 規定動畫。 3
animation 所有動畫屬性的簡寫屬性,除了animation-play-state 屬性。 3
animation-name 規定@keyframes 動畫的名稱。 3
animation-duration 規定動畫完成一個週期所花費的秒或毫秒。 默認是0。 3
animation-timing-function 規定動畫的速度曲線。 默認是"ease"。 3
animation-delay 規定動畫何時開始。 默認是0。 3
animation-iteration-count 規定動畫被播放的次數。 默認是1。 3
animation-direction 規定動畫是否在下一周期逆向地播放。 默認是"normal"。 3
animation-play-state 規定動畫是否正在運行或暫停。 默認是"running"。 3

下面兩個例子設置所有動畫屬性:

OperaSafariChromeFirefoxInternet Explorer

實例

運行myfirst動畫,設置所有的屬性:

div
{
animation-name: myfirst;
animation-duration: 5s;
animation-timing-function: linear;
animation-delay: 2s;
animation-iteration-count: infinite;
animation-direction: alternate;
animation-play-state: running;
/* Safari and Chrome: */
-webkit-animation-name: myfirst;
-webkit-animation-duration: 5s;
-webkit-animation-timing-function: linear;
-webkit-animation-delay: 2s;
-webkit-animation-iteration-count: infinite;
-webkit-animation-direction: alternate;
-webkit-animation-play-state: running;
}

嘗試一下»

OperaSafariChromeFirefoxInternet Explorer

實例

與上面的動畫相同,但是使用了簡寫的動畫animation 屬性:

div
{
animation: myfirst 5s linear 2s infinite alternate;
/* Safari and Chrome: */
-webkit-animation: myfirst 5s linear 2s infinite alternate;
}

嘗試一下»