原文: A Simple CSS Animation Tutorial
看到這篇文章描述簡單易懂,適合初學者,於是乎就想著記錄和分享一下。
(正文)
以將黃色方塊轉變為藍綠色圓型作為一個開始。
![[譯]A Simple CSS Animation Tutorial](https://i.iter01.com/images/ebb2cc854a830dff2d90e651a304135ce51f3a372494bad7a0d888ca9162e6a6.png)
上圖是來自於 CSS Visual Dictionary
在上述程式碼中.animateClass被賦給一個元素,動畫隨即起效。這個class連結到animationName上,animationName需要設定@keyframes規則。這則動畫設定在3秒或者3000毫秒之間。 Note: 中間過程新增的特點的動畫-提供了一個曲線來描述在特定時間節點上動畫的相對速度。 在接下來的內容中我們將覆蓋釋放過程和其他一些CSS動畫屬性。
動畫是如何工作的
你可以運用動畫在任何那些物理位置、維度、角度或者顏色可以變化的CSS屬性上。使用關鍵幀(keyframes)實現基本動畫非常簡單。
CSS動畫關鍵幀是使用@keyframes關鍵字指定的。關鍵幀讓元素的狀態維持在動畫時間線的點上。
CSS動畫引擎會自動的在關鍵幀之間進行插值。你所需要知道的只是設定動畫起始和終點的CSS屬性。然後用@keyframes animationName{...}建立一個特定名字的動畫。
最後,建立一個特定的class來定義你的動畫duration/direction/repeatability/ easing type...,連結到@keyframes上。下面將視覺化這個過程。
CSS動畫屬性
8個獨立的動畫屬性速記:
- animation-name:
- animation-duration
- animation-timing-function
- animation-delay: 動畫開始前的延遲
- animation-iteration-count: 動畫出現的次數
- animation-direction: forwards/backwards/ alternate sequence
- animation-fill-mode: state of the animation when it is not playing
- animation-play-state: specify whether animation is running or is paused
animation-name
.animationClass {
animation-name: animationName;
animation-fill-mode: normal;
animation: normal 3000ms easa-in;
}
@keyframes animationName {
0%{}
100%{}
}
複製程式碼
animation-duration
通常想先設定動畫的長度。正如下圖所示可以設定duration單位為秒或者毫秒。
![[譯]A Simple CSS Animation Tutorial](https://i.iter01.com/images/1ee07ce349ac886a7d1d8b91de3ca5b2dd7f142fb3095f8cc77fee161949cf53.png)
也可以在動畫開始前設定一個延遲。
![[譯]A Simple CSS Animation Tutorial](https://i.iter01.com/images/bc0589291d4519176e2f0592c3977c01ea3b5faad76681e9afc0c6390475db6d.png)
animation-direction
動畫方向可以設定normal/reverse/alternate/alternate-reverse
![[譯]A Simple CSS Animation Tutorial](https://i.iter01.com/images/bb2b0fee13a30e940804e7b280739573a376a161184a44e0fc70fae7745ab552.png)
animation-iteration-count



animation-timing-function
Easing由animation-timing-function指定,能為動畫增添個性。這是通過調整動畫在時間線上任意給定點的速度來實現的。起始點、中間點和終點特別關鍵,每個Easing型別都是由貝塞爾曲線定義的。







animation-fill-mode
none/forwards/backwards/both
animation-play-state
paused/running
Forward& Inverse Kinematics
![[譯]A Simple CSS Animation Tutorial](https://i.iter01.com/images/83b7a01676f5806c29113a95e9256a2da6b48ee6a4ba3bcb1b37d0be02e64737.png)
... 待完善