1. 程式人生 > >css 動畫

css 動畫

stat div out bsp pau 補間動畫 mes 實現 move

css 動畫:

動畫是CSS3中具有顛覆性的特征之一,可通過設置多個節點來精確控制一個或一組動畫,常用來實現復雜的動畫效果.

  1. 必要元素:

a、通過@keyframes指定動畫序列;自動補間動畫,確定兩個點,系統會自動計算中間過程。這兩個點就稱為關鍵幀。我們可以設置多個關鍵幀

b、通過百分比將動畫序列分割成多個節點;

c、在各節點中分別定義各屬性

d、通過animation將動畫應用於相應元素;

  1. animation樣式常用屬性:

a) 動畫序列的名稱:animation-name: move;

b) 動畫的持續時間:animation-duration: 1s;

c) 動畫的延時:animation-delay: 1s;

d) 播放狀態:animation-play-state: paused|running;

e) 播放速度:animation-timing-function: linear;

f) 播放次數 反復:animation-iteration-count: 1;

g) 動畫播放完結後的狀態:animation-fill-mode: forwards;

h) 循環播放時,交叉動畫:animation-direction: alternate;

代碼說明:

<style>
*{
padding: 0;
margin: 0;
}
div{
width: 300px;
height: 300px;
margin:100px auto;
}
div > img{
width:100%;
}
/*添加動畫*/
@keyframes rotateAni {
0%{
/*可以同時對多個屬性添加動畫效果*/
transform: rotate(0deg) scale(1);
}
50%{
transform: rotate(180deg) scale(2);
}
100%{
transform: rotate(360deg) scale(1);
}
}
div:hover > img{
/*動畫名稱-自定義*/
animation-name: rotateAni;
/*動畫時間*/
animation-duration: 1s;
/*動畫速率曲線: linear:勻速 ease:動畫以低速開始,然後加快,在結束前變慢 ease-in:動畫以低速開始 ease-out:動畫以低速結束 ease-in-out:動畫以低速開始和結束*/
animation-timing-function: linear;
/*動畫播放次數*/
animation-iteration-count: 4;
/*動畫時間延遲*/
animation-delay: 0s;
/*動畫播放完的狀態: forwards:保持動畫播放完畢後的狀態 backwards:退回到原始狀態(默認值)*/
animation-fill-mode: forwards;
/*動畫是否輪流反射播放: alternate:在規定的次數內輪流反射播放 normal:正常播放*/
/*animation-direction: alternate;*/
}
div:active >img{
/*動畫的當前播放狀態: paused:暫停 running:運行*/
animation-play-state: paused;
}
</style>

css 動畫