• 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有问题欢迎与我讨论,共同进步。

  • 相关阅读:
    MySQL与Oracle数据库差异对比
    阿里ECS服务器远程桌面访问报错
    单分派和多分派
    博客主题
    论文阅读:LIC-Fusion: LiDAR-Inertial-Camera Odometry
    如何科研(自动化所 张世峰)
    读论文
    SLAM十四讲第二版项目代码总结
    LeetCode 982. Triples with Bitwise AND Equal To Zero
    论文阅读:Visual-Inertial Localization With Prior LiDAR Map Constraints
  • 原文地址:https://www.cnblogs.com/starof/p/4989059.html
Copyright © 2020-2023  润新知