欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

jquery js实现动画时钟

程序员文章站 2022-05-08 19:41:37
...

jquery js实现动画时钟
css样式代码如下:

<style>
            body,
            html {
                margin: 0;
            }

            .location {
                position: relative;
                width: 600px;
                height: 600px;
                left: calc(50% - 300px);
            }

            .dial {
                width: 600px;
                height: 600px;
                margin: 0 auto;
                position: absolute;
                border-radius: 50%;
                overflow: hidden;
                background-color: rgba(153, 50, 204, 0.2);
                background-image: url(img/表盘.jpg);
                background-size: 100% 100%;
            }

            .bigdiv {
                width: 600px;
                height: 600px;
                margin: 0 auto;
                position: absolute;
                border-radius: 50%;
                overflow: hidden;
            }

            .bigdiv>div {
                position: absolute;
                left: 298px;
                border-radius: 100px;
            }

            .bigdiv1 {
                animation: moves 60s steps(60) infinite;
            }

            .bigdiv1 .secondHand {
                width: 4px;
                height: 250px;
                background-color: red;
                top: 50px;
                left: 298px;
            }

            .bigdiv2 {
                animation: moves 3600s steps(3600) infinite;
            }

            .bigdiv2 .minuteHand {
                width: 6px;
                height: 180px;
                background-color: green;
                top: 120px;
                left: 297px;
            }

            .bigdiv3 {
                animation: moves 216000s steps(216000) infinite;
            }

            .bigdiv3 .hourHand {
                width: 8px;
                height: 160px;
                background-color: orange;
                top: 140px;
                left: 296px;
                border-radius: 100px;
            }

            .bigdiv .center {
                top: 290px;
                left: 290px;
                width: 20px;
                height: 20px;
                background-color: black;
                z-index: 2;
            }

            @keyframes moves {
                from {
                    transform: rotateZ(0deg);
                }

                to {
                    transform: rotateZ(360deg);
                }
            }

            #dateshow {
                text-align: center;
            }

        </style>

js代码:

<body>

<h1 id="dateshow"></h1>

<div class="location">

    <div class="dial"></div>

    <div class="bigdiv bigdiv1" id="secondHand">
        <div class="secondHand"></div>
    </div>

    <div class="bigdiv bigdiv2" id="minuteHand">
        <div class="minuteHand"></div>
    </div>

    <div class="bigdiv bigdiv3" id="hourHand">
        <div class="center"></div>
        <div class="hourHand"></div>
    </div>
</div>

<script>

    var dateshow = document.getElementById("dateshow");

    var clock = {

        weeks: ["一", "二", "三", "四", "五", "六", "日"],

        getDate: function() {

            date = new Date();

            year = date.getFullYear();

            month = date.getMonth() + 1;

            day = date.getDate();

            hours = date.getHours();

            minutes = date.getMinutes();

            seconds = date.getSeconds();

            week = date.getDay(); // 星期

            dateText = year + "年" + month + "月" + clock.format(day) + "日 星期" + clock.formatnum(week) + " " +
                clock.format(hours) + ":" + clock.format(minutes) + ":" + clock.format(seconds);

            return dateText;
        },

        format: function(data) {

            if(data.toString().length == 1) {

                data = "0" + data;
            };

            return data;

        },
        formatnum: function(num) {

            return clock.weeks[num - 1];
        },
        showdate: function() {
            dateshow.innerText = clock.getDate();
        },

        go: function() {

            var secondHand = document.getElementById("secondHand");

            var minuteHand = document.getElementById("minuteHand");

            var hourHand = document.getElementById("hourHand");

            date = new Date();

            hours = date.getHours();

            minutes = date.getMinutes();

            seconds = date.getSeconds();

            var secondAngle = seconds;

            var minuteAngle = minutes * 60 + seconds;

            var hourAngle = (60 / 12) * ((hours % 12) * 3600 + minuteAngle);

            hourHand.style.cssText = "animation-delay: -" + hourAngle + "s";

            minuteHand.style.cssText = "animation-delay: -" + minuteAngle + "s";

            secondHand.style.cssText = "animation-delay: -" + secondAngle + "s";
        }
    }
    clock.go();
    clock.showdate();
    setInterval("clock.showdate()", 1000);
</script>

</body>