一、效果图
二、实现要点
-
先准备0-9的数字的图片素材。其中图片名和数字值相同。方便根据数字对应图片的路径。需要展示八张数字图片,根据时间的不同切换不同的数字。
-
步骤:
a. 获取系统时间:Date对象、getHours()、getMinutes()
b. 显示系统时间:字符串连接
c. 设置图片路径:charAt -
注意点:
- getHours()、getMinutes()等函数取到的是数字,需要把时分秒拼接成字符串,根据字符串的index来换不同的数字图片。
- 因为时间的各位显示都是两位数,所以如果数字小于10 需要在前面加0,因此定义一个函数format来实现这个功能。
三、代码
搭建时钟的结构
<body style="background-color: #000; color:#fff">
<div id="clock">
<img src="images/0.png">
<img src="images/0.png">
:
<img src="images/0.png">
<img src="images/0.png">
:
<img src="images/0.png">
<img src="images/0.png">
</div>
</body>
var aImg = document.getElementsByTagName('img');
//
function format(time) {
if (time < 10) {
// 补0
return '0' + time;
} else {
return '' + time
}
}
function clock() {
var oDate = new Date();
// 直接得到的是数字,
// 需要转变为字符串实现将时间的字符串拼接。
//数字图片0 - 9 的路径名依次是images/0.png、images/1.png ...
//例如时间为20:20:15 ->time = '202015'
var time = format(oDate.getHours()) + format(oDate.getMinutes()) + format(oDate.getSeconds());
for (let i = 0; i < aImg.length; i++) {
// 根据当前的时间通过动态改变路径来选择图片
aImg[i].src = 'images/' + time.charAt(i) + '.png'
}
}
// 总是一秒后执行,会导致短暂00:00:00
setInterval(clock, 1000);
// 页面加载过程中直接先执行一遍
clock();
}
四、素材