Welcome 微信登录

首页 / 脚本样式 / JavaScript / jquery制作图片时钟特效

一、生成数字时钟

<script src="http://code.jquery.com/jquery-latest.js"></script><script>window.onload=function(){ var oBody=document.body; var oP=document.getElementById("time"); setInterval(fnTime,1000); fnTime(); function fnTime(){var myTime=new Date();var iHours=myTime.getHours();var iMin=myTime.getMinutes();var iSec=myTime.getSeconds();var str=toTwo(iHours)+toTwo(iMin)+toTwo(iSec);oP.innerHTML=str; } }/*将数字转换为字符串且一位数显示为两位,*/function toTwo(n){ return n<10?"0"+n:""+n;}</script><p id="time"></p>
效果:
二、将数字转换为图片
方法一:
图片名称即数字,用最简单的写法。
用到图片:


写一个函数strToImg(str)将一个字符串str中每一个数字转换为对应图片,然后动态创建<img>标签。
注意:每次调用需清空<p>标签中的内容。

<script src="http://code.jquery.com/jquery-latest.js"></script><script>window.onload=function(){ var oBody=document.body; var oP=document.getElementById("time"); setInterval(fnTime,1000); fnTime(); function fnTime(){var myTime=new Date();var iHours=myTime.getHours();var iMin=myTime.getMinutes();var iSec=myTime.getSeconds();var str=toTwo(iHours)+toTwo(iMin)+toTwo(iSec);//oP.innerHTML=str;strToImg(str); } }/*将数字转换为字符串且一位数显示为两位,*/function toTwo(n){ return n<10?"0"+n:""+n;}function strToImg(str){ var str=str; $("#time").empty(); for(var i=0;i<str.length;i++){var oImg=$("<img />");oImg.attr("src","images/"+str.charAt(i)+".png");$("#time").append(oImg); }}</script><p id="time"></p>

方法二:【不适用】

如果图片名称不是纯数字,就用一个数组保存起来。
本方法操作dom太多,效率非常低,有时候6个节点显示不全。
因为我本意是查资料看到这样写涉及到图片预加载,以为可以加快效率。尝试了一下,现在看来还是不太懂预加载原理,留坑。

<script src="http://code.jquery.com/jquery-latest.js"></script><script>window.onload=function(){ var oBody=document.body; var oP=document.getElementById("time");setInterval(fnTime,1000); fnTime();}function fnTime(){var myTime=new Date();var iHours=myTime.getHours();var iMin=myTime.getMinutes();var iSec=myTime.getSeconds();var str=toTwo(iHours)+toTwo(iMin)+toTwo(iSec);//oP.innerHTML=str;strToImg(str);}/*将数字转换为字符串且一位数显示为两位,*/function toTwo(n){ return n<10?"0"+n:""+n;}function strToImg(str){ var str=str; var imageArray=[]; for(i=0;i<11;i++){ imageArray[i]=new Image(); } //将个图像定义给相应的数组元素,使数组元素下标与图像所对应的数字字符一一对应 imageArray[0].src="images/0.png"; imageArray[1].src="images/1.png"; imageArray[2].src="images/2.png"; imageArray[3].src="images/3.png"; imageArray[4].src="images/4.png"; imageArray[5].src="images/5.png"; imageArray[6].src="images/6.png"; imageArray[7].src="images/7.png"; imageArray[8].src="images/8.png"; imageArray[9].src="images/9.png"; imageArray[10].src="images/fh.png"; $("#time").empty(); for(var i=0;i<str.length;i++){var oImg=imageArray[str.charAt(i)];//oImg.attr("src",imageArray[i].src);$("#time").append(oImg); }}</script><p id="time"></p>
方法三:
将<img>标签硬编码在html中。

<p id="time"><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"/></p><script src="http://code.jquery.com/jquery-latest.js"></script><script>window.onload=function(){ var oBody=document.body; var oP=document.getElementById("time");setInterval(fnTime,1000); fnTime();}function fnTime(){var myTime=new Date();var iHours=myTime.getHours();var iMin=myTime.getMinutes();var iSec=myTime.getSeconds();var str=toTwo(iHours)+toTwo(iMin)+toTwo(iSec);//oP.innerHTML=str;strToImg(str);} var imageArray=[]; //将个图像定义给相应的数组元素,使数组元素下标与图像所对应的数字字符一一对应 imageArray[0]="images/0.png"; imageArray[1]="images/1.png"; imageArray[2]="images/2.png"; imageArray[3]="images/3.png"; imageArray[4]="images/4.png"; imageArray[5]="images/5.png"; imageArray[6]="images/6.png"; imageArray[7]="images/7.png"; imageArray[8]="images/8.png"; imageArray[9]="images/9.png"; imageArray[10]="images/fh.png";/*将数字转换为字符串且一位数显示为两位,*/function toTwo(n){ return n<10?"0"+n:""+n;}function strToImg(str){ var str=str; for(var i=0;i<str.length;i++){ $("#time").find("img").eq(i).attr("src",imageArray[str.charAt(i)]); }}</script>
方法四:【推荐】
动态生成<img>标签,且高效的写法。

<p id="time"></p><script src="http://code.jquery.com/jquery-latest.js"></script><script>window.onload=function(){ var oBody=document.body; var oP=document.getElementById("time");setInterval(fnTime,1000); fnTime();}function fnTime(){var myTime=new Date();var iHours=myTime.getHours();var iMin=myTime.getMinutes();var iSec=myTime.getSeconds();var str=toTwo(iHours)+toTwo(iMin)+toTwo(iSec);//oP.innerHTML=str;strToImg(str);}/*将数字转换为字符串且一位数显示为两位,*/function toTwo(n){ return n<10?"0"+n:""+n;}var imageArray=[]; //将个图像定义给相应的数组元素,使数组元素下标与图像所对应的数字字符一一对应 imageArray[0]="images/0.png"; imageArray[1]="images/1.png"; imageArray[2]="images/2.png"; imageArray[3]="images/3.png"; imageArray[4]="images/4.png"; imageArray[5]="images/5.png"; imageArray[6]="images/6.png"; imageArray[7]="images/7.png"; imageArray[8]="images/8.png"; imageArray[9]="images/9.png"; imageArray[10]="images/fh.png"; function strToImg(str){ var str=str; var tempHtml=""; for(var i=0;i<str.length;i++){var imgHtml="<img src="+imageArray[str.charAt(i)]+"/>"; tempHtml+=imgHtml; } $("#time").html(tempHtml);}</script>
以上就是为大家分享的jquery制作图片时钟特效的全部代码,希望大家喜欢。