如何使用JS实现一个简易数码时钟
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何使用JS实现一个简易数码时钟,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3350字,纯文字阅读大概需要5分钟。
内容图文
![如何使用JS实现一个简易数码时钟](/upload/InfoBanner/zyjiaocheng/286/14bb42d7d33440d8810fd753b72b8bb5.jpg)
设计思路:
数码时钟即通过图片数字来显示当前时间,需要显示的图片的URL根据时间变化而变化。
a、获取当前时间Date()并将当前时间信息转换为一个6位的字符串;
b、根据时间字符串每个位置对应的数字来更改图片的src的值,从而实现更换显示图片;
构建HTML基础并添加样式。
<div id="div1"> <img src='./数字时钟(1)_files/0.jpg'> <img src='./数字时钟(1)_files/0.jpg'> : <img src='./数字时钟(1)_files/0.jpg'> <img src='./数字时钟(1)_files/0.jpg'> : <img src='./数字时钟(1)_files/0.jpg'> <img src='./数字时钟(1)_files/0.jpg'> </div>
style样式
#p1{ width:50%; margin:300px auto; background:black; }
获取图片元素以及当前时间:
var op=document.getElementById('p1'); var aImg=op.getElementsByTagName('img'); var oDate=new Date(); var str=oDate.getHours()+oDate.getMinutes()+oDate.getSeconds();
这里出现两个问题
1、oDate.getHours()返回的都是数字,这样编写为数字相加,而非字符串相加。
2、当获取的值为一位数时,会造成字符串的个数少于6,不满足初始设计要求。
解决以上两个问题的代码解决方案:
var op=document.getElementById('p1'); var aImg=op.getElementsByTagName('img'); var oDate=new Date(); function twoDigitsStr() { if(n<10) {return '0'+n;} else {return ''+n;} } var str=twoDigitsStr(oDate.getHours())+twoDigitsStr(oDate.getMinutes())+twoDigitsStr(oDate.getSeconds());
设置所有图片的src值:
for(var i=0;i<aImg.length;i++) { aImg[i].src="./数字时钟(1)_files/"+str.charAt(i)+".jpg"; }
通过setInterval()来实现每隔1秒进行重新获取当前时间以及图片src值:
var op=document.getElementById('p1'); var aImg=op.getElementsByTagName('img'); setInterval(function tick() { var oDate=new Date(); var str=twoDigitsStr(oDate.getHours())+twoDigitsStr(oDate.getMinutes())+twoDigitsStr(oDate.getSeconds()); for(var i=0;i<aImg.length;i++) { aImg[i].src="./数字时钟(1)_files/"+str.charAt(i)+".jpg"; } } ,1000);
但是还是有一个问题,网页在打开的初始阶段,显示时间为00:00:00,这是因为定时器有个特性,当定时器被打开后,不会立刻执行里面的函数,而是在1秒后执行。解决代码:
var op=document.getElementById('p1'); var aImg=op.getElementsByTagName('img'); function tick() { var oDate=new Date(); var str=twoDigitsStr(oDate.getHours())+twoDigitsStr(oDate.getMinutes())+twoDigitsStr(oDate.getSeconds()); for(var i=0;i<aImg.length;i++) { aImg[i].src="./数字时钟(1)_files/"+str.charAt(i)+".jpg"; } } setInterval(tick,1000); tick();
问题:代码setInterval(tick,1000);中函数tick没有带括号,那么JS中函数带括号与不带括号有什么区别?
完整的数码时钟制作JS代码为:
function twoDigitsStr(n) { if(n<10) {return '0'+n;} else {return ''+n;} } window.onload=function() { var op=document.getElementById('p1'); var aImg=op.getElementsByTagName('img'); function tick() {var oDate=new Date(); var str=twoDigitsStr(oDate.getHours())+twoDigitsStr(oDate.getMinutes())+twoDigitsStr(oDate.getSeconds()); for(var i=0;i<aImg.length;i++) { aImg[i].src="./数字时钟(1)_files/"+str.charAt(i)+".jpg"; } } setInterval(tick,1000); tick(); }
当然,如果有好的创意图片,可以将上述数字图片进行替换,生成各种炫目的数码时钟效果。譬如:
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!
相关推荐:
分享一下js对象常用的扩展
分享Nodejs接入微信JS-SDK的全过程
以上就是如何使用JS实现一个简易数码时钟的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是互联网集市为您收集整理的如何使用JS实现一个简易数码时钟全部内容,希望文章能够帮你解决如何使用JS实现一个简易数码时钟所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。