js 分享一个 时钟效果

<style>
        *{
            margin: 0;
            padding: 0;
        }
        #outLine{
            width: 300px;
            height: 300px;
            border-radius: 300px;
            background-color: beige;
            position: relative;
        }
        #inLine
        {
            width: 280px;
            height: 280px;
            position: absolute;
            border-radius: 280px;
            background-color: white;
            left:10px;
            top: 10px;
        }
        #inLine div:not([id])
        {
            width: 280px;
            height: 30px;
            position: absolute;
            top:125px;
            transform-origin: 140px 15px;
        }
        .begin
        {
            width: 30px;
            float: right;
            line-height: 30px;
            text-align: center;
        }
        .end
        {
            text-align: center;
            width: 30px;
            float: left;
            line-height: 30px;
        }
        #inLine div:nth-child(1)
        {
            transform: rotate(-90deg);
        }
        #inLine div:nth-child(2)
        {
            transform: rotate(-60deg);
        }
        #inLine div:nth-child(3)
        {
            transform: rotate(-30deg);
        }
        #inLine div:nth-child(5)
        {
            transform: rotate(30deg);
        }
        #inLine div:nth-child(6)
        {
            transform: rotate(60deg);
        }
        #inLine div:first-child span
        {
            transform: rotate(90deg);
        }
        #hour{
            width: 80px;
            height: 10px;
            transform-origin: 0px 5px;
            background-color: chartreuse;
            transform: rotate(-90deg);
            position: absolute;
            left: 140px;
            top:135px;
        }
        #minute,#second
        {
            width: 100px;
            height: 10px;
            transform-origin: 0px 5px;
            background-color: chartreuse;
            transform: rotate(-90deg);
            position: absolute;
            left: 140px;
            top:135px;
        }
    </style>

<body>
    <div id="outLine">
        <div id="inLine">
            <div><span class="begin">12</span><span class="end">6</span></div>
            <div><span class="begin">1</span><span class="end">7</span></div>
            <div><span class="begin">2</span><span class="end">8</span></div>
            <div><span class="begin">3</span><span class="end">9</span></div>
            <div><span class="begin">4</span><span class="end">10</span></div>
            <div><span class="begin">5</span><span class="end">11</span></div>
            <div id="hour"></div>        <!-- 时针的div-->
            <div id="minute"></div>   <!--分针的div-->
            <div id="second"></div>   <!--秒针的div-->
        </div>
    </div>
</body>

<script>
    var seconds=0;
    var minutes=0;
    var hours=0;
    var second=document.querySelector("#second");
    var minute=document.querySelector("#minute");
    var hour=document.querySelector("#hour");
    animation();
    function animation() {
        requestAnimationFrame(animation);                 //浏览器用于定时循环操作的一个接口,类似于setTimeout,主要用途是按帧对网页进行重绘。
        var date=new Date();
        seconds=date.getSeconds()*6-90+date.getMilliseconds()*(6/1000);       //度数
        second.style.transform="rotate("+seconds+"deg)";             //秒针转过的度数
        minutes=date.getMinutes()*6-90+date.getSeconds()*(6/60);  
        minute.style.transform="rotate("+minutes+"deg)";             //分针转过的度数
        hours=date.getHours()*30-90+date.getMinutes()*(30/60)+date.getSeconds()*(30/3600);
        hour.style.transform="rotate("+hours+"deg)"
    }
</script>

      

posted @ 2019-05-16 22:51  仗剑、天涯  阅读(117)  评论(0编辑  收藏  举报