CSS3 動畫css
目錄css3
1. 定義動畫
2. animation 屬性
3. animation 屬性的兼容
4. animation與transition 屬性的取別
5. animate.css 動畫庫
6. 動畫的調試及優化git
定義動畫
爲了實現動畫因此必須準備一個動畫劇本:github
1 /* 當動畫只用兩個關鍵幀時可使用該方式定義關鍵幀 */ 2 @keyframes mymove{ 3 from { 4 /* 初始狀態屬性 */ 5 } 6 to { 7 /* 結束狀態屬性 */ 8 } 9 } 10 11 /* 當動畫有多個關鍵幀可使用該方式定義關鍵幀 */ 12 @keyframes mymove { 13 0%{ 14 /* 初始狀態屬性 */ 15 } 16 /* 能夠添加多個動畫幀 */ 17 100%{ 18 /* 結束狀態屬性 */ 19 } 20 } 21 /* (中間再能夠添加關鍵幀)*/
animation 屬性web
1. animation-name 檢索或設置對象所應用的動畫名稱瀏覽器
1 @keyframes mymove{ 2 /* ... */ 3 } 4 5 animation-name:mymove;
說明:必須與規則@keyframes配合使用,若是要設置幾個animation給一個元素,咱們只需用逗號隔開性能優化
2. animation-duration 檢索或設置對象動畫的持續時間函數
animation-duration: 3s;
說明:animation-duration:3s; 動畫完成使用的時間爲3s
默認值爲 0性能
3. animation-delay 檢索或設置對象動畫延遲的時間測試
animation-delay:0.5s
說明:animation-delay:0.5s; 動畫開始前延遲的時間爲0.5s
默認值爲 0
4. animation-iteration-count 檢索或設置對象動畫的循環次數
animation-iteration-count: infinite | number;
取值說明:
5. animation-direction 檢索或設置對象動畫在循環中是否反向運動
animation-direction: reverse;
取值說明:
6. animation-play-state 檢索或設置對象動畫的狀態
animation-play-state: paused;
取值說明:
7. animation-fill-mode: forwards;屬性規定動畫在播放以前或以後,其動畫效果是否可見。
animation-fill-mode: forwards;
取值說明:
8. animation-timing-function 檢索或設置對象動畫的過渡類型
animation-timing-function: linear;
取值說明:
9. animation複合屬性。檢索或設置對象所應用的動畫特效。
animation: name duration timing-function delay iteration-count direction fill-mode play-state;
屬性值說明:
注意:複合屬性的某些屬性能夠省略。
animation兼容性及兼容性前綴
-webkit-animation: ; -moz-animation: ; -o-animation: ; animation: ; @-webkit-keyframes move{ } @-moz-keyframes move{ } @-o-keyframes move{ } @keyframes move{ }
瀏覽器的支持狀況
animation和transition的區別
相同點:都是隨着時間改變元素的屬性值。
不一樣點:
1. transition須要觸發一個事件(hover事件或click事件等)纔會隨時間改變其css屬性;
而animation在不須要觸發任何事件的狀況下也能夠顯式的隨着時間變化來改變元素css的屬性值,從而達到一種動畫的效果,css3的animation就須要明確的動畫屬性值。
2. 過分屬性沒法實現複雜的效果
3. 過渡屬性一次鼠標通過只能夠發生一次,不能重複發生動畫
4. 動畫是須要配合@keyframes來使用
5. 過分屬性沒法中間暫停
animate.css 動畫庫
CSS3動畫庫演示地址
https://daneden.github.io/animate.css/
animate.css 的下載地址
https://raw.githubusercontent.com/daneden/animate.css/master/animate.css
animate.css 的使用
1. 引入animate.css
<link rel="stylesheet" href="https://raw.githubusercontent.com/daneden/animate.css/master/animate.css">
2. 給動畫元素添加類名
<div class="animated rubberBand"></div>
動畫的調試及優化
Google瀏覽器的控制檯中查看animations面板
f12 打開控制檯 --> 選擇控制檯中最右邊的三個點 --> 選擇More tools --> 選擇 Animations --> 在控制檯的下方將會顯示animations控制面板
Google瀏覽器rendering面板
f12 打開控制檯 --> 選擇控制檯中最右邊的三個點 --> 選擇More tools --> 選擇 rendering --> 下方將會顯示rendering 面板
性能優化:https://www.jianshu.com/p/eaf4cfc07eac