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>
复制代码

 

本文作者starof,因知识本身在变化,作者也在不断学习成长,文章内容也不定时更新,为避免误导读者,方便追根溯源,请诸位转载注明出处:http://www.cnblogs.com/starof/p/4989059.html有问题欢迎与我讨论,共同进步。


相关文章
|
3月前
|
JavaScript
jQuery实现无缝图片滚动效果
jQuery实现无缝图片滚动效果
153 67
|
7月前
|
JavaScript
jQuery图片延迟加载插件jQuery.lazyload
jQuery图片延迟加载插件jQuery.lazyload
|
1月前
|
JavaScript
jQuery制作的3D冰块立方时钟动态特效源码
jQuery制作的3D冰块立方时钟动态特效源码是一段基于jQuery实现的3D魔方立方时钟效果代码,该设计非常特别,且支持数字颜色的变化,提供8款颜色选择,非常有意思,欢迎对此段代码感兴趣的朋友前来下载使用。
36 8
|
7月前
|
JavaScript 前端开发
jquery酷炫的马赛克图片还原动画代码
jquery酷炫的马赛克图片还原动画代码,jquery马赛克图片动画,js酷炫图片代码,马赛克图片js还原效果,js图片分散汇聚效果素材
112 1
|
6月前
|
移动开发 JavaScript 前端开发
rem的适配方案,css文件和js文件的引入方式,特色小边框的制作,DS-Digital.ttf数字展示屏的使用方法:,自适应图片 background-size,jQuery爆bug,a和盒子居中,
rem的适配方案,css文件和js文件的引入方式,特色小边框的制作,DS-Digital.ttf数字展示屏的使用方法:,自适应图片 background-size,jQuery爆bug,a和盒子居中,
|
7月前
|
JavaScript 索引
jQuery 实现 图片框切换【与原生 JS 对比】
jQuery 实现 图片框切换【与原生 JS 对比】
|
7月前
|
JavaScript 前端开发
【Web 前端】如何在点击一个按钮时使用 jQuery 隐藏一个图片?
【5月更文挑战第2天】【Web 前端】如何在点击一个按钮时使用 jQuery 隐藏一个图片?
|
JavaScript
jQuery lazyload.js 懒加载可视范围图片
jQuery lazyload.js 懒加载可视范围图片
69 0
|
JavaScript 前端开发
jQuery点击图片来回切换功能
jQuery点击图片来回切换功能
102 0
jQuery点击图片来回切换功能