js实现时钟代码

js实现时钟代码代码<!DOCTYPEhtml><html><headlang=”en”><metacharset=”UTF-8″><title></title><style>/*全局*/*{margin:0;…

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

代码

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        /* 全局 */
        *{ 
   
            margin:0;
            padding:0;
        }
        .clock{ 
   
            width:400px;
            height:400px;
            border:10px solid #333;
            box-shadow: 0 0 20px 3px #444 inset;
            border-radius:210px;
            position:relative;
            margin:5px auto;
            z-index:10;
            background-color:#f6f6f6;
        }
        /* 时钟数字 */
        .clock-num{ 
   
            width:40px;
            height:40px;
            font-size:22px;
            text-align:center;
            line-height:40px;
            position:absolute;
            z-index:8;
            color:#555;
            font-family:fantasy, 'Trebuchet MS';
        }
      
        /* 指针 */
        .clock-line{ 
   
            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:199px;
            left:180px;
            background-color:#f60;
            transform-origin:11.765% 50%;
            box-shadow:1px -3px 7px 1px #bbb;
        }
        </style>
</head>
<body>
<div class="clock" id="clock">
    <!-- 原点 -->
    <div class="origin"></div>
    <!-- 时分秒针 -->
    <div class="clock-line hour-line" id="hour-line"></div>
    <div class="clock-line minute-line" id="minute-line"></div>
    <div class="clock-line second-line" id="second-line"></div>
</div>
<script>
    (function(){ 
   
        window.onload=initNumXY(200, 160, 40,40);
        var hour_line = document.getElementById("hour-line");
        var minute_line = document.getElementById("minute-line");
        var second_line = document.getElementById("second-line");
        var date_info = document.getElementById("date-info");
      
        var hour_time = document.getElementById("hour-time");
        var minute_time = document.getElementById("minute-time");
        var second_time = document.getElementById("second-time");
        function setTime(){ 
   
            var this_day = new Date();
            var hour = (this_day.getHours() >= 12) ?
                    (this_day.getHours() - 12) : this_day.getHours();
            var minute = this_day.getMinutes();
            var second = this_day.getSeconds();
            var hour_rotate = (hour*30-90) + (Math.floor(minute / 12) * 6);
            var year = this_day.getFullYear();
            var month = ((this_day.getMonth() + 1) < 10 ) ?
            "0"+(this_day.getMonth() + 1) : (this_day.getMonth() + 1);
            var date = (this_day.getDate() < 10 ) ?
            "0"+this_day.getDate() : this_day.getDate();
            var day = this_day.getDay();
            hour_line.style.transform = 'rotate(' + hour_rotate + 'deg)';
            minute_line.style.transform = 'rotate(' + (minute*6 - 90) + 'deg)';
            second_line.style.transform = 'rotate(' + (second*6 - 90)+'deg)';
            date_info.innerHTML =
                    year + "-" + month + "-" + date + " " + week_day[day];
            hour_time.innerHTML = (this_day.getHours() < 10) ?
            "0" + this_day.getHours() : this_day.getHours();
            minute_time.innerHTML = (this_day.getMinutes() < 10) ?
            "0" + this_day.getMinutes() : this_day.getMinutes();
            second_time.innerHTML = (this_day.getSeconds() < 10) ?
            "0" + this_day.getSeconds():this_day.getSeconds();
        }
        setInterval(setTime, 1000);
        function initNumXY(R, r, w, h){ 
   
            var numXY = [
                { 
   
                    "left" : R + 0.5 * r - 0.5 * w,
                    "top" : R - 0.5 * r * 1.73205 - 0.5 * h
                },
                { 
   
                    "left" : R + 0.5 * r * 1.73205 - 0.5 * w,
                    "top" : R - 0.5 * r - 0.5 * h
                },
                { 
   
                    "left" : R + r - 0.5 * w,
                    "top" : R - 0.5 * h
                },
                { 
   
                    "left" : R + 0.5 * r * 1.73205 - 0.5 * w,
                    "top" : R + 0.5 * r - 0.5 * h
                },
                { 
   
                    "left" : R + 0.5 * r - 0.5 * w,
                    "top" : R + 0.5 * r * 1.732 - 0.5 * h
                },
                { 
   
                    "left" : R - 0.5 * w,
                    "top" : R + r - 0.5 * h
                },
                { 
   
                    "left" : R - 0.5 * r - 0.5 * w,
                    "top" : R + 0.5 * r * 1.732 - 0.5 * h
                },
                { 
   
                    "left" : R - 0.5 * r * 1.73205 - 0.5 * w,
                    "top" : R + 0.5 * r - 0.5 * h
                },
                { 
   
                    "left" : R - r - 0.5 * w,
                    "top" : R - 0.5 * h
                },
                { 
   
                    "left" : R - 0.5 * r * 1.73205 - 0.5 * w,
                    "top" : R - 0.5 * r - 0.5 * h
                },
                { 
   
                    "left" : R - 0.5 * r - 0.5 * w,
                    "top": R - 0.5 * r * 1.73205 - 0.5 * h
                },
                { 
   
                    "left" : R - 0.5 * w,
                    "top" : R - r - 0.5 * h
                }
            ];
            var clock = document.getElementById("clock");
            for(var i = 1; i <= 12; i++){ 
   
                if(i%3 == 0) { 
   
                    clock.innerHTML += "<div class='clock-num em_num'>"+i+"</div>";
                } else { 
   
                    clock.innerHTML += "<div class='clock-num'>" + i + "</div>";
                }
            }
            var clock_num = document.getElementsByClassName("clock-num");
            for(var i = 0; i < clock_num.length; i++) { 
   
                clock_num[i].style.left = numXY[i].left + 'px';
                clock_num[i].style.top = numXY[i].top + 'px';
            }
            for(var i = 0; i < 60; i++) { 
   
                clock.innerHTML += "<div class='clock-scale'> " +
                        "<div class='scale-hidden'></div>" +
                        "<div class='scale-show'></div>" +
                        "</div>";
            }
            var scale = document.getElementsByClassName("clock-scale");
            for(var i = 0; i < scale.length; i++) { 
   
                scale[i].style.transform="rotate(" + (i * 6 - 90) + "deg)";
            }
        }
    })();
</script>
</body>
</html>

效果图
在这里插入图片描述

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

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 计算机发展历史的四个阶段分别是_计算机发展的四个阶段及四个特点

    计算机发展历史的四个阶段分别是_计算机发展的四个阶段及四个特点篇一:计算机发展的四个阶段计算机技术发展的四个阶段第一代电子计算机第一台电子管计算机于1946年在美国制成,取名埃尼阿克(ENIAC)。在美国宾夕法尼亚大学诞生的。世界上第一台电子计算机是个庞然大物:重30吨,占地150平方米,肚子里装有18800只电子管。1.第一代计算机:电子管数字计算机(1946-1958年)硬件方面,逻辑元件采用电子管,主存储器采用汞延迟线、磁鼓、磁芯;外存储器采用磁带。…

    2022年8月31日
  • Windows10下安装Oracle 11g

    Windows10下安装Oracle 11g一、下载Oracle官方下载地址:https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html官网下载需要登陆Oracle账号,没有的可以注册一个。这里我分享一个百度云盘的下载链接(只有64位的):https://pan.baidu.com/s/1SV0CpCDew_lSVhISS…

    2022年5月7日
  • idea2021.3 激活码(JetBrains全家桶)

    (idea2021.3 激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1STL5S9V8F-eyJsaWNlbnNlSW…

    2022年3月27日
  • java 调用webservice asmx「建议收藏」

    java 调用webservice asmx「建议收藏」用的jar包axis,可以在http://download.csdn.net/download/xiaoyong8823/4391971这里下载因为最近有个项目要调用webservice接口,之前接触的都是Java开发服务端和客户端的接口,开发前服务端一般会给个以http://xxx/services?wsdl地址的文件或者地址。这次对方给我个http://xxxx/serv

    2022年6月1日
  • 完整javaEE学生信息管理系统[通俗易懂]

    完整javaEE学生信息管理系统[通俗易懂]基于javaweb的ssm学校教务管理系统(管理员,教师,学生)文章结构一、开发框架及业务方向1.开发环境2.开发框架3.整体业务二、项目结构及页面展示1.项目整体结构2.用户页面3.管理员页面***需要源码的加企鹅:671033846;备注CSDN即可******文章结构一、开发框架及业务方向1.开发环境操作系统不限:java特性,一套代码,导出运行jdk版本不限:推荐jdk1.8tomcat版本不限:推荐Tomcat8.0数据库mysql:版本不限,推荐mysql8.0以下开发工具:e

    2022年10月16日
  • 关于安装Jenkins插件报错问题的最新发现

    关于安装Jenkins插件报错问题的最新发现

    2021年8月31日

发表回复

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

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