博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS 做时钟
阅读量:7243 次
发布时间:2019-06-29

本文共 3584 字,大约阅读时间需要 11 分钟。

 今天,给大家分享一个用JS做的时钟。

<!DOCTYPE html>

<html>
<head>
<meta charset="utf-8">
<style media="screen">
#wrap {
width: 500px;
height: 500px;
border: 5px solid black;
border-radius: 500px;
margin: auto;
position: relative;
}

</style>

<title></title>
</head>
<body>
<div id="wrap">

</div>

</body>
<script type="text/javascript">
for (var i = 1; i < 61; i++) {                    //制作刻度
var positer =document.createElement('div'); // 设置一个新的div 命名为positer  也可以在css 样式中写 这里我写在 js里
positer.style.width = '10px';
positer.style.height = '500px';
positer.style.position = 'absolute';
positer.style.left = '245px';
// positer.style.background = 'blue';
wrap.appendChild(positer);                         // 把positer 放入 wrap 中

var scale = document.createElement('div');   //设置一个新的div 命名为scale (也可以写在css中)

scale.style.width = '5px';
scale.style.height = '10px';
scale.style.background = 'gray';
scale.style.margin = 'auto';
positer.appendChild(scale);                         //  把scale 放入 positer 中

var number = document.createElement('span');   

number.style.display = "inline-block";
positer.appendChild(number);
number.innerHTML = i ;                                // 把 i 插入 number中
number.style.color = 'gray';
number.style.fontSize = '0.5em';
var warp = document.getElementById('wrap');   

positer.style.transform = "rotate("+i * 6+"deg)";   // positer 随着 i的变化旋转的角度也变化

number.style.transform = "rotate(-"+i * 6+"deg)"; 
if (i % 5 ==0 ) {                      // 当 i能被5整除时
scale.style.width = '8px';          
scale.style.height = '20px';
scale.style.background = 'black';
number.innerHTML =(i / 5);    // 把(i/5)的值插入到number 中
number.style.color = 'black';    // 改变颜色
number.style.fontSize = '2em';  //  改变字体大小
}
}
dot =document.createElement('div');  // 定义中间的中心轴
dot.style.width = '20px';
dot.style.height = '20px';
dot.style.background ='red';
dot.style.position = 'absolute';
dot.style.borderRadius = '20px';
dot.style.top = '240px';
dot.style.left = '240px';
dot.style.zIndex = 100;
wrap.appendChild(dot);    //把dot 放入 wrap中
// 定义时针
hour = document.createElement('div');
hour.style.width = '0';
hour.style.height = '120px';
hour.style.border = '4px solid black';
hour.style.position = 'absolute';
hour.style.borderRadius = '20px';
hour.style.transformOrigin = 'bottom';  // 定义它的起始转动的位置
hour.style.left = '246px';
hour.style.top = '126px';
wrap.appendChild(hour);      // 把 hour 放入 wrap中
//定义分针
minute = document.createElement('div');
minute.style.width = '0';
minute.style.height = '160px';
minute.style.border = '3px solid black';
minute.style.borderRadius = '20px';
minute.style.position = 'absolute';
minute.style.transformOrigin = 'bottom';
minute.style.left = '247px';
minute.style.top = '87px';
wrap.appendChild(minute);
//定义秒针
second = document.createElement('div');
second.style.width = '0';
second.style.height = '300px';
second.style.border = '2px solid red';
second.style.position = 'absolute';
second.style.left = '248px';
second.style.transformOrigin = '1px 250px';     // 定义秒针起始转动的位置 1px指 它宽度的一半 250px指正个 wrap 的一半
wrap.appendChild(second);
function timeCounter(){                             //定义函数 命名为 timeCounter
var currentDate = new Date();                 //取现在的时间赋值于变量 currentDate
var Hhour = currentDate.getHours();       // 取现在的小时
var Mminute = currentDate.getMinutes();  // 取现在的分钟
var Ssecond = currentDate.getSeconds();  // 取现在的秒
var seconds = Hhour * 3600 + Mminute * 60 + Ssecond ;    // 把今天所有的秒数赋值给变量 seconds
hour.style.transform = 'rotate('+seconds / 120+'deg)';        // 时针每秒转的度数
minute.style.transform = 'rotate('+seconds * 0.1+'deg)';    // 分针每秒转的度数
second.style.transform = 'rotate('+seconds * 6+'deg)';      // 秒针 每秒转的度数
}
setInterval('timeCounter()', 1000);  // 重复函数timeCounter 每1000毫秒执行一次 也就是1秒

</script>

</html>

  这里的图片即使做好的图片,做好的秒针,分针,时针都是动的。

 

转载于:https://www.cnblogs.com/Sabo-dudu/p/5734686.html

你可能感兴趣的文章
互联网创业公司黑话指南,很严肃的,不许笑!
查看>>
设计模式之适配器模式
查看>>
2017新年快乐特效
查看>>
Tomcat启动时报错:“ Error starting static Resources”问题解决
查看>>
Infrastructure as Code——Kubernetes一键编排实践
查看>>
触摸云端编程之道——基于函数计算的serverless应用开发
查看>>
让BASH,VIM美美的Powerline
查看>>
Genymotion安装配置指南
查看>>
Adapter 适配器模式(设计模式03)
查看>>
前端调错(一)---ajax返回数据成功,却进入error方法
查看>>
Java千百问_05面向对象(009)_java的多态性都有什么表现
查看>>
SQL Server分页3种方案比拼[转]
查看>>
《从零开始学Swift》学习笔记(Day 25)——类和结构体定义
查看>>
C语言函数
查看>>
iCalendar格式中关于RRule的解析和生成
查看>>
程序员的量化交易之路(15)--Cointrader之EntityBase类(3)
查看>>
Maven使用笔记(二)Eclipse中maven项目添加依赖
查看>>
跟我一起数据挖掘(9)——R语言
查看>>
Silverlight实用窍门系列:49.Silverlight中管理独立存储--Isolated Storage【附带实例源码】...
查看>>
PostgreSQL standby in 64bit to 32bit or reverse enviroment
查看>>