纯js+css实现在线时钟


Posted in Javascript onAugust 18, 2020

本文实例为大家分享了js+css实现在线时钟的具体代码,供大家参考,具体内容如下

<!DOCTYPE html>
<html>
 <head>
 <meta charset="utf-8">
 <title>时钟</title>
 <style type="text/css">
 *{
 padding: 0;
 margin: 0;
 }
 .wrap{
 position: absolute;
 width: 200px;
 height: 200px;
 border: 2px solid;
 background-color: pink;
 border-radius: 50%;
 left: 50%;
 top: 50%;
 transform: translate(-50%,-50%);
 }
 .wrap>ul{
 list-style: none;
 }
 .wrap>ul>li{
 position: absolute;
 left: 99px;
 top: 0;
 width: 2px;
 height: 10px;
 background-color: black;
 transform-origin: center 100px;
 }
 .wrap>ul>li:nth-child(5n+1){
 height: 15px;
 }
 .wrap > .hour{
 position: absolute;
 left: 97px;
 top:70px ;
 width: 6px;
 height: 30px;
 background: black;
 transform-origin: center bottom;
 }
 .wrap > .min{
 position: absolute;
 left: 98px;
 top: 50px;
 width: 4px;
 height: 50px;
 background: gray;
 transform-origin: center bottom;
 }
 .wrap > .sec{
 position: absolute;
 left: 99px;
 top: 30px;
 width: 2px;
 height: 70px;
 background: red;
 transform-origin: center bottom;
 }
 .wrap > .center{
 position: absolute;
 left: 90px;
 top: 90px;
 width: 20px;
 height: 20px;
 border-radius:50% ;
 background: black;
 }
 </style>
 </head>
 <body>
 <div class="wrap">
 <ul></ul>
 <div class="hour"></div>
 <div class="min"></div>
 <div class="sec"></div>
 <div class="center"></div>
 </div>
 </body>
 <script type="text/javascript">
 window.onload =function(){
 var hourNode =document.querySelector(".wrap > .hour");
 var minNode =document.querySelector(".wrap > .min");
 var secNode =document.querySelector(".wrap > .sec");
 var ulNode =document.querySelector(".wrap>ul");
 var styleNode =document.createElement('style');
 var liHtml ='';
 var styleHtml ='';
 for(var i=0;i<60;i++){
 liHtml += "<li></li>";
 styleHtml+=".wrap>ul>li:nth-child("+(i+1)+"){transform: rotate("+(i*6)+"deg);}"
 }
 ulNode.innerHTML =liHtml;
 styleNode.innerHTML =styleHtml;
 document.querySelector('head').appendChild(styleNode);
 
 moveTime();
 setInterval(moveTime,1000);
 
 function moveTime(){
 var date =new Date();
 var sec =date.getSeconds();
 var min =date.getMinutes()+sec/60;
 var hour =date.getHours()+min/60;
 hourNode.style.transform ="rotate("+(hour*30)+"deg)";
 minNode.style.transform ="rotate("+(min*6)+"deg)";
 secNode.style.transform ="rotate("+(sec*6)+"deg)";
 }
 
 }
 </script>
</html>

纯js+css实现在线时钟

实现要点

1、transform-origin的基本点的应用
2、批量处理html和样式的信息
3、指证位置进行了优化(时针与小时和分针位置有关,分针与分和秒针位置有关)。

新增居中方式:

开启绝对定位 left:50%;top :50%;transform:translate(50%,50%);

更多JavaScript时钟特效点击查看:JavaScript时钟特效专题

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
in.js 一个轻量级的JavaScript颗粒化模块加载和依赖关系管理解决方案
Jul 26 Javascript
JavaScript中的原型prototype属性使用详解
Jun 05 Javascript
JavaScript中的Math.LN2属性用法详解
Jun 12 Javascript
简单谈谈node.js 版本控制 nvm和 n
Oct 15 Javascript
再谈javascript注入 黑客必备!
Sep 14 Javascript
探讨跨域请求资源的几种方式(总结)
Dec 02 Javascript
JS查找英文文章中出现频率最高的单词
Mar 20 Javascript
JavaScript解析任意形式的json树型结构展示
Jul 23 Javascript
解析vue中的$mount
Dec 21 Javascript
vant实现购物车功能
Jun 29 Javascript
React倒计时功能实现代码——解耦通用
Sep 18 Javascript
Vue实现圆环进度条的示例
Feb 06 Vue.js
three.js 利用uv和ThreeBSP制作一个快递柜功能
Aug 18 #Javascript
js+css实现扇形导航效果
Aug 18 #Javascript
js实现3D旋转效果
Aug 18 #Javascript
Vue elementui字体图标显示问题解决方案
Aug 18 #Javascript
详解三种方式在React中解决绑定this的作用域问题并传参
Aug 18 #Javascript
javascript实现移动端上传图片功能
Aug 18 #Javascript
八种Vue组件间通讯方式合集(推荐)
Aug 18 #Javascript
You might like
PHP4与PHP3中一个不兼容问题的解决方法
2006/10/09 PHP
使用TinyButStrong模板引擎来做WEB开发
2007/03/16 PHP
asp和php下textarea提交大量数据发生丢失的解决方法
2008/01/20 PHP
如何用phpmyadmin设置mysql数据库用户的权限
2012/01/09 PHP
CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
2019/02/28 PHP
比较简单的异步加载JS文件的代码
2009/07/18 Javascript
javascript面向对象编程(一) 实例代码
2010/06/25 Javascript
jquery异步跨域访问代码
2013/06/28 Javascript
a标签的href和onclick 的事件的区别介绍
2013/07/26 Javascript
在JavaScript中正确引用bind方法的应用
2015/05/11 Javascript
jQuery聚合函数实例
2015/05/21 Javascript
JavaScript中函数表达式和函数声明及函数声明与函数表达式的不同
2015/11/15 Javascript
jquery捕捉回车键及获取checkbox值与异步请求的方法
2015/12/24 Javascript
深入分析Javascript事件代理
2016/01/30 Javascript
浅析javascript函数表达式
2016/02/10 Javascript
通过修改360抢票的刷新频率和突破8车次限制实现方法
2017/01/04 Javascript
node中间层实现文件上传功能
2018/06/11 Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
2018/12/03 Javascript
详解React中合并单元格的正确写法
2019/01/08 Javascript
20个必会的JavaScript面试题(小结)
2019/07/02 Javascript
JS使用Chrome浏览器实现调试线上代码
2020/07/23 Javascript
在Python中编写数据库模块的教程
2015/04/29 Python
一篇文章入门Python生态系统(Python新手入门指导)
2015/12/11 Python
Python基于二分查找实现求整数平方根的方法
2016/05/12 Python
Python调用C# Com dll组件实战教程
2017/10/12 Python
Python函数装饰器实现方法详解
2018/12/22 Python
pyhanlp安装介绍和简单应用
2019/02/22 Python
Python3基础教程之递归函数简单示例
2019/06/07 Python
wxPython实现绘图小例子
2019/11/19 Python
python中pdb模块实例用法
2021/01/15 Python
加拿大最大的体育用品、鞋类和服装零售商:Sport Chek
2018/11/29 全球购物
超市业务员岗位职责
2013/12/05 职场文书
公司门卫岗位职责
2014/03/15 职场文书
单位法人授权委托书范本
2014/10/09 职场文书
matplotlib画混淆矩阵与正确率曲线的实例代码
2021/06/01 Python
Go中的条件语句Switch示例详解
2021/08/23 Golang