css3系列之animation實現逐幀動畫


上面這個兩個簡單的動畫,是用 animation-timing-function: steps();  這個屬性實現的,具體如何實現,看下面:

這上面的圖片,也就是我們的素材,

 

有些人,可能不是很理解 關鍵幀容器,和 steps 之間的關系,沒關系,看下面的圖解

 

下面做鍾表

用到的素材,如上所示。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        * {
            padding: 0;
            margin: 0;
        }
        

        @keyframes secondRun {
            0% {
                transform: rotate(180deg);
            }
                                                /* 由於,我們只需要他 轉一圈,所以,我們定義好一圈的角度即可 */
            100% {
                transform: rotate(540deg);
            }
        }
        .wra {
            width: 200px;
            height: 200px;
            position: relative;
            left: calc(50% - 100px);
            top: 100px;                             /*父元素的 基本布局*/
            background-image: url('./img/clock/clock.png');
            background-size: 100% 100%;
        }

        .hour {
            position: absolute;
            left: 95px;
            top: 95px;          /*把時針,定位到 中間點*/
            width: 10px;
            height: 45px;
            background-image: url('./img/clock/hour.png');
            background-size: 100% 100%;
            z-index: 2;
        }

        .minute {
            position: absolute;
            left: 95px;
            top: 95px;         /*把分針定位到中間點*/
            width: 10px;
            height: 66px;
            background-image: url('./img/clock/minute.png');
            background-size: 100% 100%;
            animation: secondRun 3600s infinite steps(60, end); /*steps 把總時長分割成 60  3600/60 =60 所以需要運動 60步* 60s走一次   */
            transform-origin: center 5px;   /*要旋轉,就要有旋轉的中心點, 設置旋轉的中心點。*/
            transform: rotate(180deg);  /*因為,默認的指針是指向 6   我們需要讓他指向 12  所需要旋轉 180度 */
            z-index: 1;
        }

        .second {
            position: absolute;
            left: 98px;
            top: 77px;         /*把秒針定位到中間點*/
            width: 5px;
            height: 84px;
            background-image: url('./img/clock/second.png');
            background-size: 100% 100%;
            animation: secondRun 60s infinite steps(60, end);    /*steps 把總時長分割成 1 60/60 = 1 所以需要運動 60步, 1s 走一次*/
            transform-origin: center 23px;  /*要旋轉,就要有旋轉的中心點, 設置旋轉的中心點。*/
            transform: rotate(180deg);  /*因為,默認的指針是指向 6   我們需要讓他指向 12  所需要旋轉 180度 */
            z-index: 3;
        }
    </style> 
</head>

<body>
    <div class="wra">
        <div class="hour"></div>
        <div class="minute"></div>
        <div class="second"></div>
    </div>
</body>

</html>

 

以下是素材,如何獲取素材? 右鍵 檢查, 就能找到 該圖片的url 了。

 


免責聲明!

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



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