CSS3新特性(03):Animation

CSS3中動(dòng)畫涉及到三個(gè)屬性,一個(gè)是Transform:變形;一個(gè)是Transition:過渡,一個(gè)是Animation:動(dòng)畫。其中Transform、Animation可以搭配著使用,實(shí)現(xiàn)復(fù)雜動(dòng)畫,Transition可以實(shí)現(xiàn)簡(jiǎn)單動(dòng)畫。

有時(shí)候,Transition過渡不能解決我們想要的動(dòng)畫效果,我們希望動(dòng)畫的過渡程度更加復(fù)雜有層次,這個(gè)時(shí)候就要用到Animation。

當(dāng)然CSS3中的Animation與HTML5中的Canvas繪制動(dòng)畫又不同,Animation只應(yīng)用在頁(yè)面上已存在的DOM元素上,做出來的動(dòng)畫相比較Flash、JavaScript及jQuery制作出來的動(dòng)畫效果稍顯粗糙些。

Animation有下面這些屬性:

屬性 描述
animation 簡(jiǎn)寫屬性,用于在一個(gè)屬性中設(shè)置8個(gè)動(dòng)畫屬性
animation-name 規(guī)定需要綁定到選擇器的keyframe名稱
animation-duration 規(guī)定完成動(dòng)畫所花費(fèi)的時(shí)間,以秒或毫秒計(jì)。
animation-timing-function 規(guī)定動(dòng)畫的速度曲線。跟transition一樣。
animation-delay 規(guī)定在動(dòng)畫開始之前的延遲。
animation-iteration-count 規(guī)定動(dòng)畫應(yīng)該播放的次數(shù)。默認(rèn)1,也可以是infinite無限次
animation-direction 規(guī)定是否應(yīng)該輪流反向播放動(dòng)畫。值為nomal\reverse\alternate\alternate-reverse。意思分別是正方向\反方向\往返\反方向的往返。
animation-fill-mode 規(guī)定動(dòng)畫開始的時(shí)候是否要保持開始的第一幀,結(jié)束是否保持最后一幀。其值為none\backwards\forwards\both。分別意思是不保持,開始保持,結(jié)束保持,和都保持。通常情況下是both設(shè)置。
animation-play-state 規(guī)定動(dòng)畫暫停還是播放,值為paused\running。一般搭配鼠標(biāo)hover時(shí)候使用,比如鼠標(biāo)移上去就動(dòng)了的效果,就設(shè)置running。

(1)語(yǔ)法

animation:none;
animation:abc 2s ease 0s 1 nomal none running;
animation:abc 2s;
animation:abc 1s 2s both,abcd 2s both;

其中abc就是keyframe名稱。keyframe是什么呢?我們把他叫做“關(guān)鍵幀”,玩過flash的朋友可能對(duì)這東西不會(huì)陌生。前面我們?cè)谑褂胻ransition制作transition過渡效果時(shí),就包括了初始屬性和最終屬性,一個(gè)開始執(zhí)行動(dòng)作時(shí)間和一個(gè)延續(xù)動(dòng)作時(shí)間以及動(dòng)作的變換速率。

如果我們要控制的更細(xì)一些,比如要第一個(gè)時(shí)間段執(zhí)行什么動(dòng)作,第二個(gè)時(shí)間段執(zhí)行什么動(dòng)作,換到flash中說,就是第一幀執(zhí)行什么動(dòng)作,第二幀執(zhí)行什么動(dòng)作,這樣用Transition就很難實(shí)現(xiàn)了,此時(shí)我們也需要這樣的一個(gè)“關(guān)鍵幀”來控制。CSS3的Animation就是由“keyframes”這個(gè)屬性來實(shí)現(xiàn)這樣的效果。

如何定義keyframe的名稱呢?有兩種寫法:

@keyframes abc{
      from{opacity:1;height:100px;}
      to{opacity:0.5;height:200px;}
}
 
@keyframes abc{
    0%{opacity:1;height:100px;}
    50%{opacity:0.8;height:200px;}
   100%{opacity:0.5;height:300px;}
}

分別是定義開始的狀態(tài)屬性參數(shù),定義中間的狀態(tài)屬性參數(shù),和定義結(jié)束時(shí)候的狀態(tài)屬性參數(shù)。當(dāng)然如果屬性參數(shù)是一樣的,我們可以組合起來寫,看下面:

@keyframes flash{
0%,50%,100%{opacity:1;}
25%,75%{opacity:0;}
}

定義了keyframes名稱用來干嘛呢,就是下面的用處了,把 "keyframes名稱" 捆綁到元素中去,比如div。

div {
animation:abc 0.5s both;
animation:flash 0.5s both;
animation:abc 0.5s both,flash 0.5s both;
}

Animation可以綜合寫一行,把所有的表格中的屬性按照表格里上下的順序?qū)懀部梢苑珠_Animation的每個(gè)屬性分開單獨(dú)寫。

(2)實(shí)例

.tools_iicon:hover{animation:rotate360 2s;}
@keyframes rotate360{
from{transform:rotate(0deg);}
to{transform:rotate(360deg);}
}

后記:這是原文地址《CSS3新特性(03):Animation》,歡迎來我個(gè)人博客逛逛!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類選擇器 屬性選擇器 繼承屬性: color,font,text-align,li...
    love2013閱讀 2,459評(píng)論 0 11
  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類選擇器 屬性選擇器 繼承屬性: color,font,text-align,li...
    wzhiq896閱讀 2,134評(píng)論 0 2
  • animation簡(jiǎn)介? animation無疑是CSS3里最牛的功能??梢圆捎幂^少的代碼制作超炫的動(dòng)畫。? an...
    柒月柒日晴7閱讀 521評(píng)論 0 2
  • 看了很多視頻、文章,最后卻通通忘記了,別人的知識(shí)依舊是別人的,自己卻什么都沒獲得。此系列文章旨在加深自己的印象,因...
    DCbryant閱讀 1,985評(píng)論 0 4
  • 變形--旋轉(zhuǎn) rotate() 旋轉(zhuǎn)rotate()函數(shù)通過指定的角度參數(shù)使元素相對(duì)原點(diǎn)進(jìn)行旋轉(zhuǎn)。它主要在二維空間...
    阿振_sc閱讀 984評(píng)論 1 5

友情鏈接更多精彩內(nèi)容