网页时钟

使用HTML,CSS绘制一个时钟,效果图和素材如下图(注意指针可以旋转到任意位置)
clock

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>clock</title>
        
        <style>
.clock, .hand {
    background-image: url(clock1.png);
}

.clock {
    margin: 20px auto;
    position: relative;
    width: 760px;
    height: 730px;
    background-position: -198px -68px;
}

.hand {
    display: none;
    position: absolute;
    left: 356px;
    top: 114px;
    width: 50px;
    height: 350px;
    
    -webkit-transform-origin: center 254px;
    -moz-transform-origin: center 254px;
    -ms-transform-origin: center 254px;
    transform-origin: center 254px;
}

.hour {
    background-position: -112px 377px;
}

.minute {
    background-position: -63px 377px;
}

.second {
    background-position: -17px 377px;
    -webkit-transition: -webkit-transform 0.5s;
    -moz-transition: -moz-transform 0.5s;
    -ms-transition: -ms-transform 0.5s;
    transition: transform 0.5s;
}
        </style>
    </head>
    <body>
        <div class="clock">
            <div class="hour hand"></div>
            <div class="minute hand"></div>
            <div class="second hand"></div>
        </div>
        <script>
var hourHand = document.querySelector(".clock .hour"),
    minuteHand = document.querySelector(".clock .minute"),
    secondHand = document.querySelector(".clock .second");

update();
hourHand.style.display = "block";
minuteHand.style.display = "block";
secondHand.style.display = "block";

function update() {
    var time = new Date();
    var hh = time.getHours(),
        mm = time.getMinutes(),
        ss = time.getSeconds();
    
    var hhDeg = 360 * (hh * 3600 + mm * 60) / (12 * 3600),
        mmDeg = 360 * (mm * 60 + ss) / 3600,
        ssDeg = 6 * (hh * 3600 + mm * 60 + ss);
        //BUG: 23:59:59 -> 00:00:00 second hand transition will go wild!
    
    hourHand.style.transform = "rotate(" + hhDeg + "deg)";
    hourHand.style.webkitTransform = "rotate(" + hhDeg + "deg)";
    hourHand.style.MozTransform = "rotate(" + hhDeg + "deg)";
    hourHand.style.msTransform = "rotate(" + hhDeg + "deg)";
    
    minuteHand.style.transform = "rotate(" + mmDeg + "deg)";
    minuteHand.style.webkitTransform = "rotate(" + mmDeg + "deg)";
    minuteHand.style.MozTransform = "rotate(" + mmDeg + "deg)";
    minuteHand.style.msTransform = "rotate(" + mmDeg + "deg)";
    
    secondHand.style.transform = "rotate(" + ssDeg + "deg)";
    secondHand.style.webkitTransform = "rotate(" + ssDeg + "deg)";
    secondHand.style.MozTransform = "rotate(" + ssDeg + "deg)";
    secondHand.style.msTransform = "rotate(" + ssDeg + "deg)";

    setTimeout(update, 200);
}
        </script>
    </body>
</html>

这是效果

转载于:https://www.cnblogs.com/kilobtye/p/4066322.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值