JS及CSS3实现钟表效果

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            *{
                margin: 0;
                padding: 0;
            }
            #wrap{
                width: 300px;
                height: 300px;
                background-color: aliceblue;
                margin: 200px auto;
                position: relative;
                box-sizing: border-box;
            }
            #wrap > div{
                position: absolute;
                top: 50%;
                left: 50%;
            }
            #hour{
                width: 6px;
                height: 60px;
                background-color: #000000;
                margin: -60px -3px;
                transform-origin: 3px 60px;
            }
            #min{
                width: 4px;
                height: 80px;
                background-color: #000000;
                margin: -80px -2px;
                transform-origin: 2px 80px;
            }
            #sec{
                width: 2px;
                height: 100px;
                background-color: red;
                margin: -100px -1px;
                transform-origin: 1px 100px;
            }
            #point{
                width: 20px;
                height: 20px;
                background-color: burlywood;
                margin: -10px -10px;
                border-radius: 50%;
            }
            #circle{
                width: 300px;
                height: 300px;
                position: relative;

            }
            #circle li{
                list-style: none;
                width: 2px;
                height: 6px;
                background-color: #000000;
                position: absolute;
                transform-origin: 1px 150px;
                left: 149px;
                top: 0px;
            }

        </style>
    </head>
    <body>
        <div id="wrap">
            <div id="hour"></div>
            <div id="min"></div>
            <div id="sec"></div>
            <div id="point"></div>
            <ul id="circle"></ul>
        </div>
    </body>
    <script type="text/javascript">
        var hourDom=document.getElementById('hour');
        var minDom=document.getElementById('min');
        var secDom=document.getElementById('sec');
        var cricle=document.getElementById('circle');
        //创建表盘,ul宽高为wrap宽高,以wrap中心点为变换基点,动态分配6°的li
        for (var i=0;i<60;i++) {
            var li=document.createElement('li');
            cricle.appendChild(li);
            li.style.transform='rotate('+i*6+'deg)';
        }

        //延时函数,确保每一秒更新一次最新时间。并且计算时间准确值。
        setInterval(function(){
        var date=new Date();
        var hour=date.getHours();
        var min=date.getMinutes();
        var sec=date.getSeconds();
        min+=sec/60;
        hour+=min/60;

        //当前时间*每个单位时间走的角度=指针指向
        hourDom.style.transform='rotate('+hour*30+'deg)';
        minDom.style.transform='rotate('+min*6+'deg)';
        secDom.style.transform='rotate('+sec*6+'deg)';


        },1000)




    </script>
</html>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值