【罗盘时钟(星空版)—使用html,js,css编写。(附全部源代码+效果)】[通俗易懂]

【罗盘时钟(星空版)—使用html,js,css编写。(附全部源代码+效果)】[通俗易懂]效果换个背景:源代码index.html<!DOCTYPEhtml><htmllang=”en”><head><metacharset=”UTF-8″><title>CSDN—追梦者</title><linkrel=”stylesheet”href=”css/clock.css”></head><body><ulclass=”clock”id=”

大家好,又见面了,我是你们的朋友全栈君。

目录

效果

在这里插入图片描述
在这里插入图片描述
换个背景:
在这里插入图片描述
在这里插入图片描述

源代码

index.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CSDN---追梦者</title>
<link rel="stylesheet" href="css/clock.css">
</head>
<body>
<ul class="clock" id="helang-clock">
    <hr>
</ul>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/clock.js"></script>
<script type="text/javascript"> $("#helang-clock").clock(); </script>
</body>
</html>

clock.css

body{ 
   
    font-size: 14px;
    color: #ffffff;
    font-family: 'Microsoft YaHei', 'Times New Roman', Times, serif;
    background: url(../image/bg2.jpg) no-repeat;
    padding: 0;
    margin: 0;
    background-size: cover;
    -webkit-background-size: cover;
    -moz-background-size: cover; 
}
.clock{ 
   
    list-style: none;
    margin: auto;
    padding: 0;
    width: 700px;
    height: 700px;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    line-height: 20px;

    user-select: none;

}

.clock .date{ 
   
    position: absolute;
    z-index: 1;
    width: 100%;
    height: 20px;
    text-align: center;
    top: 340px;
    left: 0;
}
.clock .hour{ 
   
    position: absolute;
    z-index: 3;
    width: 360px;
    height: 20px;
    top: 340px;
    left: 170px;
    transition: transform 0.3s ease-in-out 0s;
    transform:rotate(0deg);
}
.clock .hour>div{ 
   
    position: absolute;
    width: 100%;
    right: 0;
    top: 0;
    transition: transform 1s ease-in-out 0s;
    transform:rotate(0deg);
}
.clock .hour>div>div{ 
   
    float: right;
    width: 60px;
    text-align: right;
}
.clock .minute{ 
   
    position: absolute;
    z-index: 4;
    width: 520px;
    height: 20px;
    top: 340px;
    left: 90px;
}
.clock .sec{ 
   
    position: absolute;
    z-index: 5;
    width: 680px;
    height: 20px;
    top: 340px;
    left: 10px;
}
.clock>hr{ 
   
    height: 0;
    width: 0%;
    position: absolute;
    z-index: 1;
    border: #ffffff solid 0;
    border-bottom-width: 1px;
    margin: 10px 0 0 0;
    left: 50%;
    top: 50%;
    transition: width 0.3s ease-in-out 0s;
    overflow: visible;
}
.clock>hr.active:before{ 
   
    content: '';
    display: block;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background-color: #ffffff;
    top: -2px;
    left: 0;
    position: absolute;
}

clock.js


$.fn.extend({ 
   
    /* 时钟 */
    clock:function () { 
   
        var HL={ 
   };
        HL.$el=$(this);
        HL.ZHCNArr=['零','一','二','三','四','五','六','七','八','九','十'];
        /* 转为简体中文 */
        HL.changeZHCN=function (value) { 
   
            /* 小于 10 */
            if(value<10){ 
   
                return this.ZHCNArr[value];
            }

            var val=value.toString(),str='';
            /* 整 10 */
            if(val.charAt(1)==0){ 
   
                if(val.charAt(0)!=1){ 
   
                    str=this.ZHCNArr[parseInt(val.charAt(0),10)];
                }
                str+=this.ZHCNArr[10];
                return str;
            }

            /* 小于 20 */
            if(value<20){ 
   
                str=this.ZHCNArr[10]+this.ZHCNArr[parseInt(val.charAt(1),10)];
                return str;
            }
 str=this.ZHCNArr[parseInt(val.charAt(0),10)]+this.ZHCNArr[10]+this.ZHCNArr[parseInt(val.charAt(1),10)];
            return str;
        };

        /* 设置日期 */
        HL.setDate=function(){ 
   
            var yearStr='',monthStr='',dayStr='';
            var y=this.dateInfo.year.toString();
            for(var i=0;i<y.length;i++){ 
   
                yearStr+=this.changeZHCN(parseInt(y.charAt(i),10));
            }
            monthStr=this.changeZHCN(this.dateInfo.month);
            dayStr=this.changeZHCN(this.dateInfo.day);
            if(this.els){ 
   
                this.els.date.html(yearStr+'年'+monthStr+'月'+dayStr+'日');
            }else { 
   
                this.$el.append('<li class="date">'+(yearStr+'年'+monthStr+'月'+dayStr+'日')+'</li>');
            }
        };
        /* 设置小时 */
        HL.setHour=function(){ 
   
            var str='',rotateArr=[];
            for(var i=1;i<=24;i++){ 
   
                rotateArr.push(r=360/24*(i-1)*-1);
                str+='<div><div>'+(this.changeZHCN(i))+'时</div></div>';
            }
            this.$el.append('<li class="hour on-hour">'+str+'</li>');
            setTimeout(function () { 
   
                HL.$el.find(".on-hour>div").each(function (index,el) { 
   
                    $(el).css({ 
   
                        "transform":"rotate("+rotateArr[index]+"deg)"
                    })
                });
                setTimeout(function () { 
   
                    HL.setMinute();
                },300);
            },100)
        };
        /* 设置分钟 */
        HL.setMinute=function(){ 
   
            var str='',rotateArr=[];
            for(var i=1;i<=60;i++){ 
   
                rotateArr.push(360/60*(i-1)*-1);
                str+='<div><div>'+(this.changeZHCN(i))+'分</div></div>';
            }
            this.$el.append('<li class="hour minute on-minute">'+str+'</li>');
            setTimeout(function () { 
   
                HL.$el.find(".on-minute>div").each(function (index,el) { 
   
                    $(el).css({ 
   
                        "transform":"rotate("+rotateArr[index]+"deg)"
                    })
                });
                setTimeout(function () { 
   
                    HL.setSec();
                },300)
            },100);
        };
        /* 设置秒 */
        HL.setSec=function(){ 
   
            var str='',rotateArr=[];
            for(var i=1;i<=60;i++){ 
   
                rotateArr.push(360/60*(i-1)*-1);
                str+='<div><div>'+(this.changeZHCN(i))+'秒</div></div>';
            }
            this.$el.append('<li class="hour sec on-sec">'+str+'</li>');
            setTimeout(function () { 
   
                HL.$el.find(".on-sec>div").each(function (index,el) { 
   
                    $(el).css({ 
   
                        "transform":"rotate("+rotateArr[index]+"deg)"
                    })
                });
                setTimeout(function () { 
   
                    HL.initRotate();
                },1300);
            },100);
        };
        /* 初始化滚动位置 */
        HL.initRotate=function(){ 
   
            this.rotateInfo={ 
   
                "h":360/24*(this.dateInfo.hour-1),
                "m":360/60*(this.dateInfo.minute-1),
                "s":360/60*(this.dateInfo.sec-1),
            };
            this.els={ 
   
                "date":this.$el.find(".date"),
                "hour":this.$el.find(".on-hour"),
                "minute":this.$el.find(".on-minute"),
                "sec":this.$el.find(".on-sec")
            };
            this.els.hour.css({ 
   
                "transform":"rotate("+this.rotateInfo.h+"deg)"
            });
            this.els.minute.css({ 
   
                "transform":"rotate("+this.rotateInfo.m+"deg)"
            });
            this.els.sec.css({ 
   
                "transform":"rotate("+this.rotateInfo.s+"deg)"
            });
            setTimeout(function () { 
   
                HL.$el.find("hr").addClass("active").css({ 
   
                    "width":"49%"
                });
                HL.start();
            },300);
        };
        /* 启动 */
        HL.start=function(){ 
   
            setTimeout(function () { 
   
                if(HL.dateInfo.sec<=60){ 
   
                    HL.dateInfo.sec++;
                    var r=360/60*(HL.dateInfo.sec-1);
                    HL.els.sec.css({ 
   
                        "transform":"rotate("+r+"deg)"
                    });
                    HL.minuteAdd();
                    HL.start();
                }else { 
   
                    console.log(HL.dateInfo.sec)
                }
            },1000);
        };
        /* 分钟数增加 */
        HL.minuteAdd=function(){ 
   
            if(HL.dateInfo.sec==60+1){ 
   
                setTimeout(function () { 
   
                    HL.els.sec.css({ 
   
                        "transform":"rotate(0deg)",
                        "transition-duration": "0s"
                    });
                    HL.dateInfo.sec=1;
                    setTimeout(function () { 
   
                      HL.els.sec.attr("style","transform:rotate(0deg)");
                    },100);
                    HL.dateInfo.minute++;
                    var r=360/60*(HL.dateInfo.minute-1);
                    HL.els.minute.css({ 
   
                        "transform":"rotate("+r+"deg)"
                    });
                    HL.hourAdd();
                },300);
            }
        };
        /* 小时数增加 */
        HL.hourAdd=function(){ 
   
            if(HL.dateInfo.minute==60+1){ 
   
                setTimeout(function () { 
   
                    HL.els.minute.css({ 
   
                        "transform":"rotate(0deg)",
                        "transition-duration": "0s"
                    });
                    HL.dateInfo.minute=1;
                    setTimeout(function () { 
   
                   HL.els.minute.attr("style","transform:rotate(0deg)");
                    },100);
                    HL.dateInfo.hour++;
                    var r=360/24*(HL.dateInfo.hour-1);
                    HL.els.hour.css({ 
   
                        "transform":"rotate("+r+"deg)"
                    });
                    HL.dayAdd();
                },300);
            }
        };
        /* 天数增加 */
        HL.dayAdd=function(){ 
   
            if(HL.dateInfo.hour==24+1){ 
   
                setTimeout(function () { 
   
                    HL.els.hour.css({ 
   
                        "transform":"rotate(0deg)",
                        "transition-duration": "0s"
                    });
                    HL.dateInfo.hour=1;
                    setTimeout(function () { 
   
                        HL.els.hour.attr("style","transform:rotate(0deg)");
                    },100);

                    var nowDate=new Date();
                    HL.dateInfo.year=nowDate.getFullYear();
                    HL.dateInfo.month=nowDate.getMonth()+1;
                    HL.dateInfo.day=nowDate.getDate();
                    HL.setDate();
                },300);
            }
        };
        /* 初始化 */
        HL.init=function(){ 
   
            var nowDate=new Date();
            this.dateInfo={ 
   
                "year":nowDate.getFullYear(),
                "month":nowDate.getMonth()+1,
                "day":nowDate.getDate(),
                "hour":nowDate.getHours(),
                "minute":nowDate.getMinutes(),
                "sec":nowDate.getSeconds()
            };
            console.log(this.dateInfo);
            this.setDate();
            this.setHour();
        };
        HL.init();
    }
});

jquery.min.js

这属于一个小的插件,也类似于包,代码过长,这里就不放了。。。
大家可以百度下载,很容易找到~~

代码存放逻辑
新建一个文件夹,可以起名“罗盘时钟”,然后在里面新建如下文件夹:
再把我上面所发的代码取相应的名字,放里面即可。
背景图自己加哈!
在这里插入图片描述
稍后,我也会把这个小特效的所有文件上传到“资源”中,需要的朋友也可以直接从里面下载~~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154113.html原文链接:https://javaforall.net

(1)
上一篇 2022年6月28日 上午8:16
下一篇 2022年6月28日 上午8:36


相关推荐

  • mysql timestampdiff>_「timestampdiff」MySQL timestampdiff()函数 – seo实验室

    mysql timestampdiff>_「timestampdiff」MySQL timestampdiff()函数 – seo实验室timestampdiffMySQLTIMESTAMPDIFF函数简介下面说明了TIMESTAMPDIFF函数的语法。TIMESTAMPDIFF(unit,begin,end);TIMESTAMPDIFF函数返回begin-end的结果,其中begin和end是DATE或DATETIME表达式。TIMESTAMPDIFF函数允许其参数具有混合类型,例如,begin是DATE值,end可以是DAT…

    2022年5月1日
    52
  • Object 转Map,Map转Object方式总结

    Object 转Map,Map转Object方式总结商品业务对象定义 ProductProdu newProduct product setId 1L product setName 爱他美 product setProductDt 2022 03 16 第一种 通过 AlibabaFastj 实现 pom xml 文件依赖 dependency groupId com alibaba groupId dependency

    2026年3月18日
    2
  • HTTPS能有效保护用户隐私

    HTTPS就等于HTTP加上TLS(SSL),HTTPS协议的目标主要有三个:http://hovertree.com/menu/webfront/数据保密性。保证内容在传输过程中不会被第三方查看

    2021年12月24日
    45
  • freeswitch呼叫中心开发

    freeswitch呼叫中心开发开发freeswitch呼叫中心1、配置ivr2、启用mod_callcenter3、开发websocker接口,通过esl接口,发送callcenter_config命令给fs4、开发客户端页面,注册,注销,就绪,置忙等接口5、开发来电弹屏,通过客户端读取redis参数实现freeswitch的呼叫中心模块很方便的就可以让用户体验这种呼叫中心模式,包含了很多功能,具体参数的配置在使用中自行摸索。编译安装freeswitch时需要开启mod_callcenter、mod_fifo的编译,之

    2022年7月12日
    20
  • AMD发布OpenClaw部署方案

    AMD发布OpenClaw部署方案

    2026年3月14日
    1
  • pycharm+anaconda安装教程_anaconda配置pycharm

    pycharm+anaconda安装教程_anaconda配置pycharm对了宝贝儿们,卑微小李的公众号【野指针小李】已开通,期待与你一起探讨学术哟~摸摸大!目录1WhyAnaconda?2Anaconda安装流程2.1卸载python2.2下载anaconda2.2安装anaconda1WhyAnaconda?Anaconda最大的优势我认为在于可以做环境管理,可以通过创建不同的环境,安装不同的包。简单来说,就比如我们在github上下载了一个代码,是用python2.6写的,但是我们的python是3.7的版本。如果我们没有用anaconda,那么我们

    2022年8月27日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号