CSS3 動(dòng)畫

2022-05-26 16:02 更新

CSS3,我們可以創(chuàng)建動(dòng)畫,它可以取代許多網(wǎng)頁動(dòng)畫圖像,F(xiàn)lash動(dòng)畫,和JAVAScripts。


CSS3
動(dòng)畫

CSS3 @keyframes 規(guī)則

表格中的數(shù)字表示支持該屬性的第一個(gè)瀏覽器版本號(hào)。

@keyframes規(guī)則是創(chuàng)建動(dòng)畫。 @keyframes規(guī)則內(nèi)指定一個(gè)CSS樣式和動(dòng)畫將逐步從目前的樣式更改為新的樣式。


瀏覽器支持

Internet Explorer 10、Firefox 以及 Opera 支持 @keyframes 規(guī)則和 animation 屬性。

緊跟在 -webkit-, -ms- 或 -moz- 前的數(shù)字為支持該前綴屬性的第一個(gè)瀏覽器版本號(hào)。

屬性          
@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-

Opera Safari Chrome Firefox Internet Explorer

實(shí)例

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

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



CSS3 動(dòng)畫

當(dāng)在@keyframe創(chuàng)建動(dòng)畫,把它綁定到一個(gè)選擇器,否則動(dòng)畫不會(huì)有任何效果。

指定至少這兩個(gè)CSS3的動(dòng)畫屬性綁定向一個(gè)選擇器:

  • 規(guī)定動(dòng)畫的名稱

  • 規(guī)定動(dòng)畫的時(shí)長

Opera Safari Chrome Firefox Internet Explorer

實(shí)例

把 "myfirst" 動(dòng)畫捆綁到 div 元素,時(shí)長:5 秒:

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

嘗試一下 ?

注意: 您必須定義動(dòng)畫的名稱和動(dòng)畫的持續(xù)時(shí)間。如果省略的持續(xù)時(shí)間,動(dòng)畫將無法運(yùn)行,因?yàn)槟J(rèn)值是0。


CSS3動(dòng)畫是什么?

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

您可以改變?nèi)我舛嗟臉邮饺我舛嗟拇螖?shù)。

請用百分比來規(guī)定變化發(fā)生的時(shí)間,或用關(guān)鍵詞 "from" 和 "to",等同于 0% 和 100%。

0% 是動(dòng)畫的開始,100% 是動(dòng)畫的完成。

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

Opera Safari Chrome Firefox Internet Explorer

實(shí)例

當(dāng)動(dòng)畫為 25% 及 50% 時(shí)改變背景色,然后當(dāng)動(dòng)畫 100% 完成時(shí)再次改變:

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

嘗試一下 ?


Opera Safari Chrome Firefox Internet Explorer

實(shí)例

改變背景色和位置:

@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的動(dòng)畫屬性

下面的表格列出了 @keyframes 規(guī)則和所有動(dòng)畫屬性:

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

下面兩個(gè)例子設(shè)置所有動(dòng)畫屬性:

Opera Safari Chrome Firefox Internet Explorer

實(shí)例

運(yùn)行myfirst動(dòng)畫,設(shè)置所有的屬性:

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

嘗試一下 ?


Opera Safari Chrome Firefox Internet Explorer

實(shí)例

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

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

嘗試一下 ?

上面兩個(gè)例子設(shè)置所有動(dòng)畫屬性,您最好都看幾遍,并且自己操作一下!


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)