transform之时钟特效

直接上代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        #wrap{
            width: 300px;
            height: 300px;
            background: #F0F0F0;
            margin: 200px auto;
            position: relative;
        }
        #hour{
            width: 6px;
            height: 60px;
            background: #000;
            position: absolute;
            top: 90px;
            left: 147px;
            /*重置时针基点,让其沿着绿色圆点中心转动*/
            transform-origin: 3px 60px;
        }
        #min{
            position: absolute;
            top: 70px;
            left: 148px;
            width: 4px;
            height: 80px;
            background: #000;
            /*重置分针基点,让其沿着绿色圆点中心转动*/
            transform-origin: 2px 80px;
        }
        #sec{
            position: absolute;
            top: 50px;
            left: 149px;
            width: 2px;
            height: 100px;
            background: red;
/*重置秒针基点,让其沿着绿色圆点中心转动*/
            transform-origin: 1px 100px;
        }
        #icon{
            width: 20px;
            height: 20px;
            border-radius: 50%;
            background-color: yellowgreen;
            position: absolute;
            top: 140px;
            left: 140px;
        }
        #list{
            list-style: none;
        }
        #list li{
            width: 2px;
            height: 8px;
            background: #000;
            position: absolute;
            top: 0;
            left: 149px;
          /*重置li的基点*/
            transform-origin: 1px 150px;
        }
        #list li:nth-child(5n+1){
            width: 4px;
            height: 12px;
            /*li的高度重新设置后会有1px 的偏差,所以重置基点*/
            transform-origin: 2px 150px;
        }

    </style>
</head>
<body>
<div id="wrap">
    <ol id="list">

    </ol>
    <!--时针-->
    <div id="hour"></div>
    <!--fen针-->
    <div id="min"></div>
    <!--秒针-->
    <div id="sec"></div>
    <div id="icon"></div>
</div>
</body>
<script>
    window.οnlοad=function () {
        var list=document.getElementById("list");

        for(var i=0;i<60;i++){
            var li=document.createElement("li");
            li.style.transform='rotate('+(6*i)+'deg)';
            list.appendChild(li);
        }

//        获取时针,分针,秒针
        var hour=document.getElementById("hour");
        var min=document.getElementById("min");
        var sec=document.getElementById("sec");

//        获取当前的时间
        setInterval(function () {
            var date=new Date();
            var seconds=date.getSeconds();
            var minites=date.getMinutes()+seconds/60;
            var hours=date.getHours()+minites/60;


            hour.style.transform='rotate('+(30*hours) +'deg)';
            min.style.transform='rotate('+(6*minites) +'deg)';
            sec.style.transform='rotate('+(6*seconds) +'deg)';
        },1000)

    }
</script>
</html>

最终的效果:


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值