CSS3-animation實現走馬燈效果


動畫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>

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM