HTML

和上一篇文章:使用jQuery和CSS3制作数字时钟(CSS3篇)一样的HTML结构,只是多了个>date用来展示日期和星期的。

<div id="clock" class="light">
<div class="display">
<div class="date"></div>
<div class="digits"></div>
</div>
</div>

jQuery

CSS代码请参照上一篇文章,本文不再啰嗦,直接看jQuery代码。

首先我们定义参数,定义用来调用数字的class名称数组,定义中文星期名称,定义时分秒的位置。

$(function(){
var clock = $('#clock');
//定义数字数组0-9
var digit_to_name = ['zero','one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
//定义星期
var weekday = ['周日','周一','周二','周三','周四','周五','周六']; var digits = {}; //定义时分秒位置
var positions = [
'h1', 'h2', ':', 'm1', 'm2', ':', 's1', 's2'
];
});

然后构建数字时钟的时分秒。在上一篇文章中我们是直接在html中放置了数字时钟的html结构,而现在我们使用jQuery来处理时钟的展示,通过append()方法来构建数字时钟。

 var digit_holder = clock.find('.digits'); 

    $.each(positions, function(){
if(this == ':'){
digit_holder.append('<div class="dots">');
}
else{
var pos = $('<div>'); for(var i=1; i<8; i++){
pos.append('<span class="d' + i + '">');
} digits[this] = pos;
digit_holder.append(pos);
}
});

最后,我们要让时钟跑起来。每秒钟调用一次update_time()函数,在update_time()中,我们先用moment.js来格式化时间,关于moment.js的介绍请参照本站文章:使用moment.js轻松管理日期和时间。然后根据当前时分秒,分别设置时分秒数字的class属性,即显示当前时分秒数字。接着继续使用moment.js来格式化日期和星期,最终完成了会走动的数字时钟,请看下面代码:

$(function(){
...
(function update_time(){ //调用moment.js来格式化时间
var now = moment().format("HHmmss"); digits.h1.attr('class', digit_to_name[now[0]]);
digits.h2.attr('class', digit_to_name[now[1]]);
digits.m1.attr('class', digit_to_name[now[2]]);
digits.m2.attr('class', digit_to_name[now[3]]);
digits.s1.attr('class', digit_to_name[now[4]]);
digits.s2.attr('class', digit_to_name[now[5]]); var date = moment().format("YYYY年MM月DD日");
var week = weekday[moment().format('d')];
$(".date").html(date + ' ' + week); // 每秒钟运行一次
setTimeout(update_time, 1000); })();
});

下载源码

最新文章

  1. Python ToDo List
  2. HTML/CS3相关面试题目
  3. 浅析MySQL中exists与in的使用
  4. ubuntu16.04下配置JDK 1.8+安装Java EE,并实现最大子数组算法
  5. IOS开发之——keychain使用介绍 保护本地文件的安全
  6. 20145215《Java程序设计》第1周学习总结
  7. (二)STM32中中断优先级理解
  8. POJ 1928
  9. 多线程下System.Security.Cryptography.Aes CreateDecryptor报“Safe handle has been closed”的解决方案
  10. 34. leetcode 447. Number of Boomerangs
  11. Window10中利用Windbg与虚拟机(window7)中调试驱动建立方法
  12. PKUWC 2018游记
  13. FNV算法实战
  14. [Luogu 2062]分队问题
  15. FJUT寒假作业第三周数蚂蚁(记录第一道并查集)
  16. Egret飞行模拟-开发记录03-LoadingUI界面
  17. java框架之Quartz-任务调度&amp;整合Spring
  18. simple shell
  19. es6新特性之箭头函数
  20. [c/c++]指针(4)

热门文章

  1. 【cocos2d-x 手游研发----研发思路及感想】
  2. 使用xargs与awk联合使用批量杀进程,很方便
  3. 关于margin:-10000px;padding:10000px;的理解
  4. Python 将字典的元素按照键或者值的大小进行排序
  5. jQuery基础笔记(4)
  6. ng的点滴记录
  7. Elasticsearch分页
  8. 智能卡操作系统COS概述
  9. css 题目笔记(本文收集了一些个人觉得比较有意思的css题目,欢迎大家给出自己的解答)
  10. ubuntu 下更新pip后发生 ImportError: cannot import name &#39;main&#39;的问题解决