Js实现图片做的实时时钟

127 篇文章 2 订阅
111 篇文章 1 订阅

描述:

将下图作为时间的背景,实现随时时钟的效果。

效果:

代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div div
        {
            float: left;
            width: 30px;
            font-size: 120px;
        }
        #hours0,#hours1,#minute0,#minute1,#second0,#second1
        {
            width: 200px;
            height: 165px;
            background-image: url("img/sztp.jpg");
        }
    </style>
</head>
<body>
    <div>
        <div id="hours0"></div>
        <div id="hours1"></div>
        <div>:</div>
        <div id="minute0"></div>
        <div id="minute1"></div>
        <div>:</div>
        <div id="second0"></div>
        <div id="second1"></div>
    </div>
<script>
    var hours0,hours1,minute0,minute1,second0,second1;
    var imgPositionList=[];//各数字的位置

    init();
    function init() {
        hours0=document.getElementById("hours0");//小时1
        hours1=document.getElementById("hours1");//小时2
        minute0=document.getElementById("minute0");//分钟1
        minute1=document.getElementById("minute1");//分钟2
        second0=document.getElementById("second0");//秒针1
        second1=document.getElementById("second1");//秒针2
        for(var i=0;i<10;i++){ //循环赋值各数字的位置
           if(i<5){             //第一排
               imgPositionList.push({x:-i*208,y:0});
               continue;
           }
            imgPositionList.push({x:-(i-5)*208,y:-173}) //第二排

        }
        console.log( imgPositionList);
        imgPositionList.unshift(imgPositionList.pop());//将0 :最末尾的图片 删除 ,返回的值提到最前面。

        setInterval(animation,16);
    }
    
    function animation() {
        var date=new Date();
        var hour=date.getHours().toString().split("").map(function (t) { return getNum(t) });
        var minutes=date.getMinutes().toString().split("").map(function (t) { return getNum(t) });
        var seconds=date.getSeconds().toString().split("").map(function (t) { return getNum(t) });

        getDoubleArr(hour);
        getDoubleArr(minutes);
        getDoubleArr(seconds);
        setTimeDiv(hours0,hour[0]);
        setTimeDiv(hours1,hour[1]);
        setTimeDiv(minute0,minutes[0]);
        setTimeDiv(minute1,minutes[1]);
        setTimeDiv(second0,seconds[0]);
        setTimeDiv(second1,seconds[1]);
    }

    function getDoubleArr(arr) {        //字符串转化数组
        if(arr.length===1) arr.unshift(0);
        return arr;
    }
    function setTimeDiv(elem,num) {     //时间与图片的对应
        clone(elem.style,{
            backgroundPositionX: imgPositionList[num].x+"px",
            backgroundPositionY: imgPositionList[num].y+"px"
        });
    }

    function getNum(str) {
        if(isNaN(Number(str))) return str;
        return Number(str);
    }
    function clone(target,source) {
        for(var key in source){
            target[key]=source[key];
        }
    }
</script>
</body>
</html>

 

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值