動畫animation
1.先定義動畫:
@keyframes 動畫名稱(
from{}
to{}
)
或者
@keyframes 動畫名稱(
0%{}
50%{}
100%{}
)
百分號指的是動畫時長的占比。
2.使用動畫
在需要使用動畫的元素中添加
animation:動畫名稱 動畫時長 速度曲線 延遲時間 重復次數 動畫方向 完畢時狀態。 其中前兩個動畫名稱和動畫時長是必須的,其余的屬性選填,且沒有順序要求
案例:利用animation實現走馬燈動畫效果如下

代碼如下
1 <div class="box"> 2 <ul> 3 <li><img src="../images/product.jpeg" alt=""></li> 4 <li><img src="../images/car.jpg" alt=""></li> 5 <li><img src="../images/bg.jpg" alt=""></li> 6 <li><img src="../images/1.jpg" alt=""></li> 7 <li><img src="../images/fm.jpg" alt=""></li> 8 <li><img src="../images/play.png" alt=""></li> 9 10 <!--每次在box中可視范圍是(610-2*5)/150=4四張圖片,當移動至最后幾張時,會導致空白出現,為了保證走馬燈的無縫隙,將最初未移動時可視范圍內的幾張圖片添加至末尾以遮住留白 --> 11 <li><img src="../images/product.jpeg" alt=""></li> 12 <li><img src="../images/car.jpg" alt=""></li> 13 <li><img src="../images/bg.jpg" alt=""></li> 14 <li><img src="../images/1.jpg" alt=""></li> 15 </ul> 16 </div>
1 <style> 2 * { 3 margin: 0; 4 padding: 0; 5 box-sizing: border-box; 6 } 7 8 ul { 9 list-style: none; 10 } 11 12 .box { 13 margin: 100px auto; 14 width: 610px; 15 height: 110px; 16 border: 5px solid black; 17 18 overflow: hidden; 19 } 20 21 .box ul { 22 /* 如果不設置ul的寬度會導致li浮動的時候由於父級元素的寬度不夠而換行,所以ul需要設置足夠的寬度呈放所有的li 10*150=1500 */ 23 width: 1500px; 24 25 /* 使用動畫 */ 26 /* linear勻速運動 */ 27 animation: move 4s infinite linear; 28 } 29 30 /* 當鼠標移入box中的時候動畫停止,移出動畫繼續 */ 31 .box:hover ul{ 32 animation-play-state: paused; 33 } 34 35 .box li { 36 float: left; 37 width: 150px; 38 height: 100px; 39 } 40 41 .box li img { 42 width: 150px; 43 height: 100px; 44 } 45 46 /* 定義動畫 */ 47 @keyframes move{ 48 /* from 是從原始位置出發,所以可以省略 */ 49 to{ 50 /* 移動至添加最初四個li之前的最后一個li(150*6=900),此時如果未在li末尾進行添加就會導致空白出現 */ 51 transform: translate(-900px); 52 } 53 } 54 </style>