css3 clock

技术要点

css3的transform:rotate();
js的date()对象;

css

。指针旋转的原点设为底部中心:transform-origin:center bottom;
。旋转引起的锯齿,可以通过设置:translateZ(0)来改善;

js

。使用date对象得出当前时分秒,按照表面计算出旋转的角度旋转即可。
。用cssText属性批量操作样式

    function id(obj){
        return document.getElementById(obj);
    }
    var today=new Date(),
        year = today.getFullYear(),
        month = today.getMonth()+1, //获取当前月份(0-11,0代表1月)
        day = today.getDate(),
        h=today.getHours(),
        m=today.getMinutes(),
        s = today.getSeconds();
        //时
        var hourDeg = h * 30 + m*30/60,
            hourrotate = 'rotate('+hourDeg+'deg)';
            hcss = '-moz-transform:' + hourrotate + ';-o-transform:' + hourrotate + ';-ms-transform:' + hourrotate;
        id('JclockHour').style.cssText = hcss;
        id('JclockHour').style.webkitTransform = hourrotate;//webkit
        //分
        var minuteDeg = m*6 + s*6/60,
        ...

        //秒
        var secondDeg = s*6,
        ...

demo

https://github.com/dandanze/clock

动态时钟 body,div,p{ font-family: 'Microsoft Yahei' ;font-size: 14px;} .box{ width: 400px; height: 400px; border:10px solid #8bf2f1;margin:100px auto; border-radius: 50%; box-shadow: 0px 0px 20px 3px #444 inset; position: relative;} /*原点*/ .origin{ width: 20px; height: 20px; border-radius: 50%; background: #ff0000; top:190px; left: 190px; position: absolute;} /* 指针 */ .clock_line{ position: absolute;position:absolute;z-index:20;} .hour_line{width:100px;height:4px;top:198px;left:200px;background-color:#000;border-radius:2px; transform-origin:0 50%;box-shadow:1px -3px 8px 3px #aaa;} .minute_line{width:130px;height:2px;top:199px;left:190px;background-color:#000; transform-origin:7.692% 50%;box-shadow:1px -3px 8px 1px #aaa;} .second_line{width:170px;height:1px;top:199.5px;left:180px;background-color:#f60; transform-origin:11.765% 50%;box-shadow:1px -3px 7px 1px #bbb;} .dot_box{width: inherit; height: inherit;} /*时钟数*/ .dot{ width: 40px; height: 40px; line-height: 40px; text-align: center; font-size: 22px; position: absolute;} .clock-scale{width:195px;height:2px;transform-origin:0% 50%;z-index:7; position:absolute;top:199px;left:200px;} .scale-show{ width:12px;height:2px;background-color:#555;float:left;} .scale-hidden{width:183px;height:2px;float:left;} /*日期*/ .date_info{width:160px;height:28px; line-height:28px;text-align:center;position:absolute;top:230px;left:120px;z-index:11;color:#555; font-weight:bold;} .time_info{ width: 110px; height: 35px; line-height: 35px;text-align:center;position:absolute;top:270px;left:150px;z-index:11;color:#555; background: #253e3e; } .time{ width: 35px ;height:35px; float: left; color: #fff; font-size: 22px;} #minute_time{border-left:1px solid #fff;border-right:1px solid #fff;} <div class
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值