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有問題歡迎與我討論,共同進步。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM