导航首页 » 技术教程 » jquery制作图片时钟特效
jquery制作图片时钟特效 43 2024-03-20   

一、生成数字时钟

<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="http://www.gimoo.net/t/1904/images/0.png";
 imageArray[1].src="http://www.gimoo.net/t/1904/images/1.png";
 imageArray[2].src="http://www.gimoo.net/t/1904/images/2.png";
 imageArray[3].src="http://www.gimoo.net/t/1904/images/3.png";
 imageArray[4].src="http://www.gimoo.net/t/1904/images/4.png";
 imageArray[5].src="http://www.gimoo.net/t/1904/images/5.png";
 imageArray[6].src="http://www.gimoo.net/t/1904/images/6.png";
 imageArray[7].src="http://www.gimoo.net/t/1904/images/7.png";
 imageArray[8].src="http://www.gimoo.net/t/1904/images/8.png";
 imageArray[9].src="http://www.gimoo.net/t/1904/images/9.png";
 imageArray[10].src="http://www.gimoo.net/t/1904/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="http://www.gimoo.net/t/1904/images/0.png"/><img src="http://www.gimoo.net/t/1904/images/0.png"/><img src="http://www.gimoo.net/t/1904/images/0.png"/><img src="http://www.gimoo.net/t/1904/images/0.png"/><img src="http://www.gimoo.net/t/1904/images/0.png"/><img src="http://www.gimoo.net/t/1904/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="http://www.gimoo.net/t/1904/+imageArray[str.charAt(i)]+"/>";
 tempHtml+=imgHtml;  
 }
 $("#time").html(tempHtml);
}
</script>

以上就是为大家分享的jquery制作图片时钟特效的全部代码,希望大家喜欢。



!!!站长长期在线接!!!

网站、小程序:定制开发/二次开发/仿制开发等

各种疑难杂症解决/定制接口/定制采集等

站长微信:lxwl520520

站长QQ:1737366103