基于JS和JQuery实现的两种时钟效果(3)
时间:2019-08-30
本文章向大家介绍基于JS和JQuery实现的两种时钟效果(3),主要包括基于JS和JQuery实现的两种时钟效果(3)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在上一篇博文中实现了秒针的转动,接下来需要进行实现分针的布局和旋转角度计算和时针的布局和旋转角度计算
时钟案例-分针的布局和旋转角度计算
实现的效果图:
实现该效果的css代码与HTML代码:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 <style> 7 *{ 8 9 padding: 0px; 10 margin: 0px; 11 } 12 #clock{ 13 width: 800px; 14 height: 800px; 15 border: 1px solid red; 16 margin: auto; 17 background: url(img/timg.png) 0px 0px no-repeat; 18 background-size: 100% 100%; 19 position: relative; 20 } 21 .second{ 22 23 width: 22px; 24 height: 373px; 25 /*border: 1px solid red;*/ 26 background: url(img/pointer.png) -9px 0px no-repeat; 27 background-size: 606% 100%; 28 position: absolute; 29 left: 393px; 30 top: 135px; 31 opacity: 0.5; 32 transform: rotate(46deg); 33 transform-origin: 11px 273px; 34 35 } 36 .secHead{ 37 38 width: 40px; 39 height: 40px; 40 background: url(img/one.jpg) 0px 0px no-repeat; 41 background-size: 100% 100%; 42 position: absolute; 43 left: -10px; 44 top: 64px; 45 border-radius: 50%; 46 47 } 48 49 .minute{ 50 51 width: 22px; 52 height: 373px; 53 /*border: 1px solid red;*/ 54 background: url(img/pointer.png) -53px 0px no-repeat; 55 background-size: 606% 100%; 56 position: absolute; 57 left: 393px; 58 top: 135px; 59 opacity: 0.5; 60 transform: rotate(100deg); 61 transform-origin: 11px 273px; 62 63 } 64 </style> 65 <script> 66 var secDegree=0; 67 var minDegree=0; 68 69 function bodyload(){ 70 var now=new Date(); 71 var sec=now.getSeconds(); 72 secDegree=sec*6;//当前的秒数乘以6 73 74 75 //当前的分钟*(每秒钟旋转的度数*每分钟的秒数) 76 //计算当前分针旋转的角度 77 var min=now.getMinutes(); 78 minDegree=min*(0.1*60); 79 80 81 82 83 84 } 85 //每秒钟调用一次 86 function clockRotate(){ 87 //秒针的旋转 88 secDegree+=6; 89 var divSecond=document.getElementsByClassName("second");//getElementsByClassName带s因此需要返回一个数组 90 divSecond[0].style.transform="rotate("+secDegree+"deg)"; 91 92 93 //分针的旋转 94 minDegree+=0.1;//(360/3600) 95 var divMinute=document.getElementsByClassName("minute");//getElementsByClassName带s因此需要返回一个数组 96 divMinute[0].style.transform="rotate("+minDegree+"deg)"; 97 } 98 //启动定时器,定时调用旋转函数 99 setInterval("clockRotate()",1000); 100 </script> 101 </head> 102 <body onload="bodyload()"> 103 <div id="clock"> 104 <div class="second"> 105 <div class="secHead"> 106 107 108 </div> 109 110 111 </div> 112 <div class="minute"> 113 114 115 </div> 116 117 118 </div> 119 </body> 120 </html>
实现的js代码:
1 <script> 2 var secDegree=0; 3 var minDegree=0; 4 5 function bodyload(){ 6 var now=new Date(); 7 var sec=now.getSeconds(); 8 secDegree=sec*6;//当前的秒数乘以6 9 10 11 //当前的分钟*(每秒钟旋转的度数*每分钟的秒数) 12 //计算当前分针旋转的角度 13 var min=now.getMinutes(); 14 minDegree=min*(0.1*60); 15 16 17 18 19 20 } 21 //每秒钟调用一次 22 function clockRotate(){ 23 //秒针的旋转 24 secDegree+=6; 25 var divSecond=document.getElementsByClassName("second");//getElementsByClassName带s因此需要返回一个数组 26 divSecond[0].style.transform="rotate("+secDegree+"deg)"; 27 28 29 //分针的旋转 30 minDegree+=0.1;//(360/3600) 31 var divMinute=document.getElementsByClassName("minute");//getElementsByClassName带s因此需要返回一个数组 32 divMinute[0].style.transform="rotate("+minDegree+"deg)"; 33 } 34 //启动定时器,定时调用旋转函数 35 setInterval("clockRotate()",1000); 36 </script>
其中:分针的旋转角度360/3600=0.1
minDegree+=0.1;
计算当前分针旋转的角度:
当前的分钟*(每秒钟旋转的度数*每分钟的秒数)
var min=now.getMinutes(); minDegree=min*(0.1*60);
时钟案例-时针的布局和旋转角度计算
时针一秒钟旋转的角度
360度*(12小时*3600秒)
//时针的旋转 houDegree+=0.008333;//360/(12*3600)=0.008333//时针一秒钟旋转的角度 var divHour=document.getElementsByClassName("hour");//getElementsByClassName带s因此需要返回一个数组 divHour[0].style.transform="rotate("+houDegree+"deg)";
计算当前时针旋转的角度:
//计算当前时针旋转的角度 var hou=now.getHours(); // houDegree=hou*(360/12); houDegree=(hou+min/60)*30;
去掉透明度与调整初始旋转的角度的效果:
实现最终该效果的总代码:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 <style> 7 *{ 8 9 padding: 0px; 10 margin: 0px; 11 } 12 #clock{ 13 width: 800px; 14 height: 800px; 15 border: 1px solid red; 16 margin: auto; 17 background: url(img/timg.png) 0px 0px no-repeat; 18 background-size: 100% 100%; 19 position: relative; 20 } 21 .second{ 22 23 width: 22px; 24 height: 373px; 25 /*border: 1px solid red;*/ 26 background: url(img/pointer.png) -9px 0px no-repeat; 27 background-size: 606% 100%; 28 position: absolute; 29 left: 393px; 30 top: 135px; 31 32 /* opacity: 0.5;*/ 33 transform: rotate(0deg); 34 transform-origin: 11px 273px; 35 36 } 37 .secHead{ 38 39 width: 40px; 40 height: 40px; 41 background: url(img/one.jpg) 0px 0px no-repeat; 42 background-size: 100% 100%; 43 position: absolute; 44 left: -10px; 45 top: 64px; 46 border-radius: 50%; 47 48 } 49 50 .minute{ 51 52 width: 22px; 53 height: 373px; 54 /*border: 1px solid red;*/ 55 background: url(img/pointer.png) -53px 0px no-repeat; 56 background-size: 606% 100%; 57 position: absolute; 58 left: 393px; 59 top: 135px; 60 /*opacity: 0.5;*/ 61 transform: rotate(0deg); 62 transform-origin: 11px 273px; 63 64 } 65 66 .hour{ 67 68 width: 31px; 69 height: 373px; 70 /*border: 1px solid red;*/ 71 background: url(img/pointer.png) -101px 0px no-repeat; 72 background-size: 468% 100%;/*背景图片的缩放*/ 73 position: absolute; 74 left: 389px; 75 top: 135px; 76 /* opacity: 0.5;*/ 77 transform: rotate(0deg); 78 transform-origin: 16px 273px; 79 80 } 81 </style> 82 <script> 83 var secDegree=0; 84 var minDegree=0; 85 var houDegree=0; 86 87 function bodyload(){ 88 var now=new Date(); 89 var sec=now.getSeconds(); 90 secDegree=sec*6;//当前的秒数乘以6 91 92 93 //当前的分钟*(每秒钟旋转的度数*每分钟的秒数) 94 //计算当前分针旋转的角度 95 var min=now.getMinutes(); 96 // minDegree=min*(0.1*60); 97 minDegree=min*6; 98 99 100 //计算当前时针旋转的角度 101 var hou=now.getHours(); 102 // houDegree=hou*(360/12); 103 houDegree=(hou+min/60)*30; 104 105 106 107 108 109 } 110 //每秒钟调用一次 111 function clockRotate(){ 112 //秒针的旋转 113 secDegree+=6; 114 var divSecond=document.getElementsByClassName("second");//getElementsByClassName带s因此需要返回一个数组 115 divSecond[0].style.transform="rotate("+secDegree+"deg)"; 116 117 118 //分针的旋转 119 minDegree+=0.1;// 120 var divMinute=document.getElementsByClassName("minute");//getElementsByClassName带s因此需要返回一个数组 121 divMinute[0].style.transform="rotate("+minDegree+"deg)"; 122 123 //时针的旋转 124 houDegree+=0.008333;//360/(12*3600)=0.008333//时针一秒钟旋转的角度 125 var divHour=document.getElementsByClassName("hour");//getElementsByClassName带s因此需要返回一个数组 126 divHour[0].style.transform="rotate("+houDegree+"deg)"; 127 } 128 //启动定时器,定时调用旋转函数 129 setInterval("clockRotate()",1000); 130 </script> 131 </head> 132 <body onload="bodyload()"> 133 <div id="clock"> 134 <div class="hour"> 135 136 137 </div> 138 <div class="minute"> 139 140 141 </div> 142 143 <div class="second"> 144 <div class="secHead"> 145 146 147 </div> 148 149 150 </div> 151 152 153 154 155 </div> 156 </body> 157 </html>
原文地址:https://www.cnblogs.com/jiguiyan/p/11437430.html
- [原创]在msmq3.0中使用http协议发送消息
- 微信小程序开发探索之路
- 前端周记 2017 年终总结
- asp.net mvc中的路径选择
- MVC中实现加载更多
- 在ASP.NET MVC 中获取当前URL、controller、action
- [转自Scott]ASP.NET MVC框架(第四部分): 处理表单编辑和提交场景
- MVC前台Post/Get异步获得数据时参数的取值问题
- IQueryable与foreach的困惑?
- ModalPopupExtender用法示例
- MVC中局部视图的使用
- MVC发布后项目存在于根目录中的子目录中时的css与js、图片路径问题
- ORM中的继承关系映射全解——单表继承体系、一实体一具体表、一实体一扩展表、接口映射
- View与Control间的数据交互
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【C++简明教程】C++基本语法
- 【多目标跟踪】搞不懂MOT数据集,会跑代码有啥用!
- 手工 - 内网信息收集
- 使用ffmpeg压缩视频之烦和fun
- 一文学会 Web Service漏洞挖掘!
- 【实战项目代码分享】计算机视觉入门教程&实战项目代码
- Linux部署DNS服务器
- 【C++简明教程】C++简介与环境配置
- PDF 的各种操作,我用 Python 来实现(附网站和操作指导)
- Python中map()函数用法
- 谈谈不同思路下造就的不同产品与公司形态
- OpenCV 处理中文路径、绘制中文文字的烦恼,这里通通帮你解决!
- 如何快速分析大型系统架构?
- Linux小技巧、文件查找、修改、读取
- 我在赏金计划中发现的RACE条件漏洞