“时钟展示项目”说明文档(文档尾部附有相应代码)

一、最终效果展示:

二、项目亮点

1.代码结构清晰明了

2.可以实时动态显示当前时间与当前日期

3.界面简洁、美观、大方

4.提高浏览器兼容性

三、知识点汇总:

jQuery、原生javascript、css3、h5

四、重难点解释

1.各个指针的旋转角度的获取

首先要明确如下概念:

时钟指针旋转一周360度

时针:

表盘上共有12小时,每经过一小时,要旋转30度;

分针:

表盘上共有60个小格子,分针每走一分钟,经过一个小格子,转动6度;

秒针:

表盘上共有60个小格子,秒针每走一分钟,经过一个小格子,也转动6度;

(1)当前时间的获取

举个例子(以时针旋转角度计算为例):  比如现在时间是 9:28;

时针应该在9和10之间,而通过 方式只能获取到整点,所以既要获取到当前的小时,也要获取到当前的分钟,这样才能更好的来确定时针的旋转角度,即为如下方式:

(2)旋转角度的获取

由于时针每经过一个小时后,旋转30度,故获取时针旋转角度如下:

同理,分针与秒针的旋转角度如下:

分针:

秒针:

为了使时钟更加的精准,这里精确到了毫秒;

(3)执行频率,即秒针旋转频率控制

调整函数的执行时间间隔即可改变秒针转动频率。

五、项目待优化之处

1.页面过于简洁,有待进一步优化和改进;

2.作图时未来得及在时钟上画上分秒的刻度;

六、项目中各部分代码

1.HTML代码

 1 <!DOCTYPE html>
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5     <title>jQuery指针时钟(附带日期)</title>
 6     <!--引入外部css样式-->
 7     <link rel="stylesheet" href="css/demo.css" type="text/css" media="screen" />
 8 </head>
 9 <body>
10     <!--引入jQuery库文件-->
11     <script src="js/jquery-1.6.2.min.js"></script>
12     <!--引入外部js文件-->
13     <script src="js/script.js"></script>
14     <div style="text-align:center;clear:both">
15     </div>
16 </body>
17 </html>

View Code

2.css代码

  1 *
  2 {
  3     margin:0;
  4     padding:0;
  5 }
  6 body
  7 {
  8     background:#f9f9f9;
  9     color:#000;
 10     font:15px Calibri, Arial, sans-serif;
 11     text-shadow:1px 2px 1px #FFFFFF;
 12 }
 13 a,
 14 a:visited
 15 {
 16     text-decoration:none;
 17     outline:none;
 18     color:#fff;
 19 }
 20 a:hover
 21 {
 22     text-decoration:underline;
 23     color:#ddd;
 24 }
 25      /*the footer  (尾部)*/
 26 footer
 27 {
 28     background:#444 url("../images/bg-footer.png") repeat;
 29     position:fixed;
 30     width:100%;
 31     height:70px;
 32     bottom:0;
 33     left:0;
 34     color:#fff;
 35     text-shadow:2px 2px #000;
 36     /*提高浏览器的兼容性*/
 37     -moz-box-shadow:5px 1px 10px #000;
 38     -webkit-box-shadow:5px 1px 10px #000;
 39     box-shadow:5px 1px 10px #000;
 40 }
 41 footer h1
 42 {
 43     font:25px/26px Acens;
 44     font-weight:normal;
 45     left:50%;
 46     margin:0px 0 0 150px;
 47     padding:25px 0;
 48     position:relative;
 49     width:400px;
 50 }
 51 footer a.orig,
 52 a.orig:visited
 53 {
 54     background:url("../images/demo2.png") no-repeat right top;
 55     border:none;
 56     text-decoration:none;
 57     color:#FCFCFC;
 58     font-size:14px;
 59     height:70px;
 60     left:50%;
 61     line-height:50px;
 62     margin:12px 0 0 -400px;
 63     position:absolute;
 64     top:0;
 65     width:250px;
 66 }
 67      /*styling for the clock(时钟样式)*/
 68 #clock
 69 {
 70     position: relative;
 71     width: 600px;
 72     height: 600px;
 73     list-style: none;
 74     margin: 20px auto;
 75     background: url('../images/clock.png') no-repeat center;
 76
 77 }
 78 #seconds,
 79 #minutes,
 80 #hours
 81 {
 82     position: absolute;
 83     width: 30px;
 84     height: 580px;
 85     left: 270px;
 86 }
 87 #date
 88 {
 89     position: absolute;
 90     top: 365px;
 91     color: #666;
 92     right: 140px;
 93     font-weight: bold;
 94     letter-spacing: 3px;
 95     font-family: "微软雅黑";
 96     font-size: 30px;
 97     line-height: 36px;
 98 }
 99 #hours
100 {
101     background: url('../images/hands.png') no-repeat left;
102     z-index: 1000;
103 }
104 #minutes
105 {
106     background: url('../images/hands.png') no-repeat center;
107     width:25px;
108     z-index: 2000;
109 }
110
111 #seconds
112 {
113     background: url('../images/hands.png') no-repeat right;
114     z-index: 3000;
115 }

View Code

3.js代码

(1)需要下载一个js的引用包(百度或者谷歌一下你就知道)

(2)js代码

 1 $(document).ready(function () {
 2
 3     //动态插入HTML代码,标记时钟
 4     var clock = [
 5         '<ul id="clock">',
 6         '<li id="date"></li>',
 7         '<li id="seconds"></li>',
 8         '<li id="hours"></li>',
 9         '<li id="minutes"></li>',
10         '</ul>'].join('');
11
12     // 逐渐显示时钟,并把它附加到主页面中
13     $(clock).fadeIn().appendTo('body');
14
15     //每一秒钟更新时钟视图的自动执行函数
16     //也可以使用此方法: setInterval (function Clock (){})();
17     (function Clock() {
18         //得到日期和时间
19         var date = new Date().getDate(),        //得到当前日期
20            hours = new Date().getHours(),       //得到当前小时
21          minutes = new Date().getMinutes();        //得到当前分钟
22          seconds = new Date().getSeconds(),     //得到当前秒
23               ms = new Date().getMilliseconds();//得到当前毫秒
24         //将当前日期显示在时钟上
25         $("#date").html(date);
26         //获取当前秒数,确定秒针位置
27         var srotate = seconds + ms / 1000;
28         $("#seconds").css({
29             //确定旋转角度
30             'transform': 'rotate(' + srotate * 6 + 'deg)',
31         });
32         //获取当前分钟数,得到分针位置
33         var mrotate = minutes + srotate / 60;
34         $("#minutes").css({
35             'transform': 'rotate(' + mrotate * 6 + 'deg)',
36             //提高浏览器的兼容性
37             '-moz-transform': 'rotate(' + mrotate * 6 + 'deg)',
38             '-webkit-transform': 'rotate(' + mrotate * 6 + 'deg)'
39         });
40         //获取当前小时,得到时针位置
41         var hrotate = hours % 12 + (minutes / 60);
42         $("#hours").css({
43             'transform': 'rotate(' + hrotate * 30 + 'deg)',
44             //提高浏览器的兼容性
45             '-moz-transform': 'rotate(' + hrotate * 30 + 'deg)',
46             '-webkit-transform': 'rotate(' + hrotate * 30 + 'deg)'
47         });
48         //每一秒后执行一次时钟函数
49         setTimeout(Clock, 1000);
50     })();
51 });

View Code

4.一些必要的图片素材(c此处不再一一列举或展示)

注释:

1.Transform 属性

2.rotate() 方法

 

转载于:https://www.cnblogs.com/pang951189/p/7707482.html

JavaScript之“创意时钟”项目相关推荐

  1. 创意DIY项目分享(3)

    分享社区收集的创意DIY项目,希望通过这些有趣的DIY项目,扩展大家的视野,启发思维.也欢迎大家到社区分享自己的DIY项目,交流DIY心得和制作技巧. Circuit Playground 星星树 使 ...

  2. 前端特效demo | 一起围观 10 种创意时钟

    时钟动画应用非常广泛,我们经常会看到一些相当个性化的HTML5时钟动画.今天我们向大家分享 10 款形态各异的超时尚时钟动画,其中有圆盘时钟.创意时钟.电子时钟等,希望大家会喜欢. 文内附有时钟效果代 ...

  3. JavaScript制作的时钟

    JavaScript制作的时钟 分享一个自己制作的时钟.算是低级版的吧,秒钟分钟时钟都是可以获取到时间,根据时间来动的.是动态的. 效果图如下: 制作之前肯定要先把钟的各个部件画出来,然后加上样式,最 ...

  4. 基于RT-Thread OS的 迷你时钟项目

    基于RT-Thread OS的 迷你时钟项目 近期在自学RT-Thread OS, 这是一个国内团队开发的实时物联网操作系统,具有组件完整丰富.高度可伸缩.简易开发等优点. RTOS官网 参考学习文档 ...

  5. 数字时钟html脚本,javascript实现数字时钟效果

    本文实例为大家分享了javascript实现数字时钟效果的具体代码,供大家参考,具体内容如下 效果图 需求分析 1.通过date获取时间 2.通过间隔定时器setInterval动态获取时间 3.间隔 ...

  6. unity 粒子插件_收藏就完事了!Oculus Quest和Unity创意开源项目,你不码住嘛?!...

    [AIRX实验室]专栏会定期为大家推荐一些可移植性强的.可二次开发应用的.可落地实际场景使用的实战工程源码分享给大家.另外有优秀的demo或案例推广.解决方案对接的也可以联系我们(尾部有联系方式).本 ...

  7. python硬件创意_创意DIY项目分享(3)

    分享社区收集的创意DIY项目,希望通过这些有趣的DIY项目,扩展大家的视野,启发思维.也欢迎大家到社区分享自己的DIY项目,交流DIY心得和制作技巧. Circuit Playground 星星树 使 ...

  8. 基于Lua框架下的合宙ESP32C3+1.54‘’Eink墨水屏天气时钟项目

    基于Lua框架下的合宙ESP32C3+1.5''Eink墨水屏天气时钟项目 效果展示

  9. web——javascript实现动态时钟

    web--javascript实现动态时钟 javascript实现动态时钟,与当前时间同步. <!DOCTYPE html> <html lang="en"&g ...

  10. python神奇时钟项目_怎么在Python项目中利用Pygame绘制一个时钟

    怎么在Python项目中利用Pygame绘制一个时钟 发布时间:2020-11-30 14:24:30 来源:亿速云 阅读:54 作者:Leah 怎么在Python项目中利用Pygame绘制一个时钟? ...

最新文章

  1. 云服务双十一大促,最后选手阿里云上场!没有让等到最后的用户失望!
  2. 阿里云助力重庆打造“亚洲最智能大型城市”
  3. spring boot+shiro中使用@RequiresRoles不生效,访问报错404
  4. C++头文件和源文件,编译过程
  5. 四.因子图优化学习---对因子图优化的粗浅理解
  6. ant配置Cesium,纯javascript3d地图类库
  7. 清除hao123浏览器劫持小尾巴病毒
  8. 使用apicloud开发app
  9. 自然语言处理入门学习笔记3:词向量
  10. VUE + Element-ui 按住Shift实现多选
  11. 大数据风控是在做什么?
  12. 除了 xshell,还有什么类似的好用的软件
  13. 全球10大B2B电子商务平台排行,这个网站只排第三!
  14. 小米6android版本多少,小米6有几个版本 小米6各版本区别对比
  15. 知识的经济学分析:一个文献综述——基于范式演进的视点
  16. 为什么你学过Java却忘光了——记第一次助教同学见面会,java开发面试笔试题
  17. 探究vite——新一代前端开发与构建工具(一)
  18. [长城杯 2022]办公室爱情
  19. Siri 创始人: AI 虚拟助手未来5年内将彻底改变医疗行业
  20. 迷你世界云服务器不见了,迷你世界云服务器

热门文章

  1. python如何爬取煎蛋图片(js)
  2. python怎么画圆螺旋线_使用Turtle画正螺旋线的方法
  3. Java代码审计——SSH 框架审计技巧
  4. Linux下几种定时器的使用
  5. matlab fisher z变换,关于GCA统计
  6. 基于ZXing实现个性彩色好看的二维码
  7. 企业信息与网络通信安全 团队成员简历-叶俊 (转)
  8. SAS逻辑回归之多分类
  9. gis怎么通过水库划分子流域_基于HEC-HMS模型推求西江流域巨型水库群区间入流...
  10. 白帽SEO为什么更好?