@keyframes是CSS3中用于創(chuàng)建動(dòng)畫(huà)的關(guān)鍵幀規(guī)則。通過(guò)定義關(guān)鍵幀動(dòng)畫(huà)的起始狀態(tài)和終止?fàn)顟B(tài),可以創(chuàng)建出各種復(fù)雜的動(dòng)畫(huà)效果。@keyframes規(guī)則包含兩個(gè)部分:關(guān)鍵幀選擇器和聲明塊。
關(guān)鍵幀選擇器定義了動(dòng)畫(huà)的時(shí)間點(diǎn),通常使用百分比來(lái)表示。例如,定義從0%到100%的關(guān)鍵幀,表示動(dòng)畫(huà)從開(kāi)始到結(jié)束的過(guò)程。聲明塊則定義了在該時(shí)間點(diǎn)上元素的狀態(tài),包括位置、大小、顏色、透明度等。聲明塊可以包含CSS屬性和值,和普通的CSS樣式類似。
下面是一個(gè)@keyframes的簡(jiǎn)單示例:
@keyframes myanimation {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
上面的代碼定義了一個(gè)名為“myanimation”的關(guān)鍵幀動(dòng)畫(huà),該動(dòng)畫(huà)從透明度為0的狀態(tài)漸變到透明度為1的狀態(tài),動(dòng)畫(huà)從開(kāi)始到結(jié)束會(huì)經(jīng)歷0%到100%的過(guò)程。
在使用@keyframes時(shí),通常需要通過(guò)CSS選擇器將該動(dòng)畫(huà)應(yīng)用于特定的元素,例如:
div {
animation: myanimation 2s linear infinite;
}
上面的代碼表示將名為“myanimation”的關(guān)鍵幀動(dòng)畫(huà)應(yīng)用于所有的div元素,動(dòng)畫(huà)持續(xù)時(shí)間為2秒,動(dòng)畫(huà)速度為線性,無(wú)限循環(huán)。
總的來(lái)說(shuō),@keyframes是一個(gè)非常強(qiáng)大的CSS3動(dòng)畫(huà)屬性,通過(guò)定義關(guān)鍵幀和聲明塊可以創(chuàng)造出各種復(fù)雜的動(dòng)畫(huà)效果,讓網(wǎng)頁(yè)更加生動(dòng)有趣。