CSS3 animation屬性中的steps實現GIF動圖(逐幀動畫)


相信 animation 大家都用過很多,知道是 CSS3做動畫用的。而我自己就只會在 X/Y軸 上做位移旋轉,使用 animation-timing-function 規定動畫的速度曲線,常用到的 貝塞爾曲線。但是這些動畫效果都是連續性的。

今天發現個新功能 animation-timing-function 的另外個屬性值 steps()功能符,可以讓動畫不連續,就是制作逐幀動畫。

  steps(n,start/end)  

  第一個參數 number 為把動畫分為 n 步階段性展示,表示把我們的動畫分成了多少段;

  第二個參數默認為 end,設置最后一步的狀態,start 為結束時的狀態,end 為開始時的狀態。

第二個參數具體說就是,emmmm.....................我寄幾也沒詳細看(沒理解),附上傳送門你們看下張鑫旭大神的講解  CSS3 animation屬性中的steps功能符深入介紹

 

這里只需要第一個參數就好了

 

 

這張素材寬高:2128*241、總共為8幀,故 steps(8)  

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 6     <meta http-equiv="X-UA-Compatible" content="ie=edge">
 7     <title>CSS3 animation屬性中的steps實現GIF動圖(逐幀動畫)</title>
 8     <style>
 9         .main {
10             margin: 100px auto;
11             width: 266px;
12             height: 241px;
13             background: url(./test.jpg);
14             background-size: 2128px;
15             animation: sprite5 1s steps(8) infinite
16         }
17 
18         @keyframes sprite5 {
19             0% {
20                 background-position: 0 0
21             }
22 
23             100% {
24                 background-position: -2128px 0;
25             }
26         }
27     </style>
28 </head>
29 
30 <body>
31     <div class="main"></div>
32 </html>

ok,大功告成,效果預覽,當然這張GIF來的

👇👇👇👇👇👇👇


免責聲明!

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



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