今天,给大家分享一个用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>

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

JS 做时钟的更多相关文章

  1. js 动态时钟

    js 动态时钟 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...

  2. AJAX部分---对比js做日期的下拉选择 和 ajax做三级联动;

    js做日期选择: 实现当前年份的前5后5年的日期选择 实现功能:年份和月份页面加载完成使用JS循环添加,天数根据月份的变化动态添加改变 扩展功能:天数可以根据闰年平年变化 <body> & ...

  3. JS实现时钟特效

    <!DOCTYPE html><html><head lang="en"><meta charset="UTF-8"& ...

  4. socket.io+angular.js+express.js做个聊天应用(三)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/www19940501a/article/details/27590611 接着前面博客文章socke ...

  5. js做小数运算精度问题

    当js做小数运算时存在bug,大概是因为二进制和十进制转换之间的关系. bug如图 解决方案 1.运算结果后,乘以100再除以100.网上推荐这种方法但是乘以1000再除以1000依然存在精度问题 2 ...

  6. HTML 5 +CSS3 + 原生js 做(雪花全屏飘落 + 3d旋转图)

    原文:HTML 5 +CSS3 + 原生js 做(雪花全屏飘落 + 3d旋转图) 3d旋转图:主要用css3中transform属性中的rotate,translate;以及用来做舞台效果的 pers ...

  7. 用 JS 做一个数独游戏(二)

    用 JS 做一个数独游戏(二) 在 上一篇博客 中,我们通过 Node 运行了我们的 JavaScript 代码,在控制台中打印出来生成好的数独终盘.为了让我们的数独游戏能有良好的体验,这篇博客将会为 ...

  8. 用 JS 做一个数独游戏(一)

    用 JS 做一个数独游戏(一) 数独的棋盘由 9x9 的方格组成,每一行的数字包含 1 ~ 9 九个数字,并且每一列包含 1 ~ 9 这 9 个不重复的数字,另外,整个棋盘分为 9 个 3x3 的块, ...

  9. h5 录音 自动生成proto Js语句 UglifyJS-- 对你的js做了什么 【原码笔记】-- protobuf.js 与 Long.js 【微信开发】-- 发送模板消息 能编程与会编程 vue2入坑随记(二) -- 自定义动态组件 微信上传图片

    得益于前辈的分享,做了一个h5录音的demo.效果图如下: 点击开始录音会先弹出确认框: 首次确认允许后,再次录音不需要再确认,但如果用户点击禁止,则无法录音: 点击发送 将录音内容发送到对话框中.点 ...

随机推荐

  1. knockoutJS学习笔记02:jsRender模板引擎

    上一篇最后提到了模板,并尝试自己编写一个最简单版本:有些朋友可能用过 jqtmpl,这是一个基于jquery的模板引擎,不过它已经不再更新了,而且据说渲染速度比较慢.这里介绍另外一个模板引擎:jsRe ...

  2. 备忘:maven 中指定版本

    <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> ...

  3. 读书笔记---PMBOK第五版官方中文版

    以下是为了准备PMP考试时学习<PMBOK第五版官方中文版>这本书的笔记和摘要,目的是为了以后可以快速的抓住本书的核心重点复习. 引论 PMPOK的目的 收录了项目管理知识体系中被普遍认可 ...

  4. css一些小的效果

    1.http://www.shejidaren.com/creative-dashboard-designs.html 网址:  

  5. 一行python代码实现树结构

    树结构是一种抽象数据类型,在计算机科学领域有着非常广泛的应用.一颗树可以简单的表示为根, 左子树, 右子树. 而左子树和右子树又可以有自己的子树.这似乎是一种比较复杂的数据结构,那么真的能像我们在标题 ...

  6. 开发haproxy管理平台

    1.说明:该脚本仅适用于Linux操作系统2.使用方法: 在该脚本同级目录下要创建一个名字叫做 haproxy 的文件 haproxy 文件内容如下 global log 127.0.0.1 loca ...

  7. Mac 下面 apache 不解析PHP(or PHP 版本不对)的解决办法

    Mac 升级到 EI Caption 之后发现 apache 的配置被重置了,记录下解决的步骤: 在 apache2 配置文件中修改 PHP 的扩展路径即可: vi /etc/apache2/http ...

  8. 解决:WPS for Linux提示“系统缺失字体symbol、wingdings、wingdings 2、wingdings 3、webding”

    WPS for Linux提示“系统缺失字体symbol.wingdings.wingdings 2.wingdings 3.webding” 出现提示的原因是因为WPS for Linux没有自带以 ...

  9. BZOJ 1878: [SDOI2009]HH的项链

    1878: [SDOI2009]HH的项链 Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 3548  Solved: 1757[Submit][Statu ...

  10. sql 知识点系统汇总

    提供性能: .服务器往往具有强大的计算能力和速度..避免把大量的数据下载到客户端,减少网络上的传输量. 第一章 T-SQL 语句 1.1数据类型 文本型 -- CHAR 定长型 <=8000字节 ...