一个会跳动的电子表,源码--time.html  图片--img

github地址:https://github.com/1056237661/practiceCode

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
.timeBox{
margin: 100px;
padding: 12px;
display: inline-block;
border: 1px solid chartreuse;
}
img{
position: relative;
}
</style>
</head>
<body>
<div class="timeBox">
<img class="timeNum" src="img/1.png"/>
<img class="timeNum" src="img/2.png"/>
<img src="img/second1.png"/> <img class="timeNum" src="img/3.png"/>
<img class="timeNum" src="img/4.png"/>
<img src="img/second1.png"/> <img class="timeNum" src="img/5.png"/>
<img class="timeNum" src="img/0.png"/>
</div>
</body>
<script>
var aImg = document.getElementsByClassName("timeNum"); /* 获取显示时间的img节点 */
var shockNum = [ -15, 15, -9, 9, -4, 0]; /* 振幅的数组 */
var iNow = []; /* 存储每次需要波动的节点下标 */ /* 初始化电子表 */
time();
/* 设置定时器更新时间(1s) */
var timer = setInterval(function(){
time();
},1000);
/* 获取时间方法 */
function time(){
var dateNow = new Date(); /* new一个Date对象 */
var hours = dateNow.getHours(); /* 时 */
var minius = dateNow.getMinutes(); /* 分 */
var seconds = dateNow.getSeconds(); /* 秒 */
var str = timeStyle(hours)+timeStyle(minius)+timeStyle(seconds); /* 用字符串存储当前时间 */
/* 通过str初始化时间表 */
for (var i=0; i<str.length; i++) {
/* 判断每次是哪个需要波动 */
if (aImg[i].index != str.charAt(i)) {
/* 首次循环index值全为undefined,禁止全部波动 */
if (aImg[i].index != undefined) {
iNow.push(i); /* 把需要波动的值加入iNow数组 */
}
aImg[i].index = str.charAt(i); /* 并赋给新的值 */
aImg[i].setAttribute("src","img/"+str.charAt(i)+".png"); /* 替换数字图片 */
}
}
/* 遍历当前需要震动的数组,并设置震动定时器 */
for(x in iNow){
toshocking(iNow[x]);
}
/* 每次震动完数组清零 */
iNow.length = 0;
} /* 为每一个需要震动的数字设置震动定时器 */
function toshocking(z){
var n = 0; /* 波动次数 */
var timer2 = setInterval(function(){
aImg[z].style.top = shockNum[n]+"px";
++n;
/* 若波动完设置的振幅数组,清除定时器 */
if (n==shockNum.length) {
clearInterval(timer2)
}
},20);
} // 调整时间的样式,个位数前面加“0”
function timeStyle(num){
if (num < 10) {
return "0"+num;
}
return num+"";
}
</script>
</html>

效果:

最新文章

  1. count(*) 与count (字段名)的区别
  2. [PCB制作] 1、记录一个简单的电路板的制作过程——四线二项步进电机驱动模块(L6219)
  3. python协程和yeild
  4. CSS hack 汇总
  5. Python错误、调试和测试
  6. loghelper.cs 代码
  7. JS之setAttribute和getAttribute
  8. cocos2dx3.2 画图方法小修改之 C++ final学习
  9. iphone编程,使用代码结束程序
  10. 在windows下装2个mysql数据库的办法
  11. Day04 - Python 迭代器、装饰器、软件开发规范
  12. css white-space
  13. 怎样调通微信支付及微信发货通知接口(Js API)
  14. 如何去除AJAX收到数据中包含的html页面数据
  15. [C++]neuroscan的延时预估
  16. Quartz总结(四):动态修改定时器二
  17. linux下tomcat服务器的启动和关闭以及查看实时打印日志
  18. c# 用户页面
  19. Jave Web阿里云短信服务发送验证码
  20. MathType让矩阵中的小数以小数点对齐的教程

热门文章

  1. Eclipse中JAR System library 没有怎么添加?
  2. Spark SQL 之 DataFrame
  3. 15天玩转redis —— 第九篇 发布/订阅模式
  4. APUE学习之多线程编程(二):线程同步
  5. 部署JProfiler监控tomcat
  6. Don&#39;t repeat yourself
  7. virtualBox安装Centos7之后
  8. js封装的三级联动菜单(使用时只需要一行js代码)
  9. simpson
  10. 【C#】新建服务自动发送邮件