js字串以鍵盤打字方式輸出:

antzone發表於2017-04-06

本章節分享一段程式碼例項,它實現了讓字串中的字元以鍵盤打字的方式輸出。

程式碼非常的簡單,上面也有足夠的註釋,不多做分析了,直接給出程式碼例項,如下:

[HTML] 純文字檢視 複製程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.51texiao.cn/" />
<title>螞蟻部落</title>
<style type="text/css">
body{
  font-size:14px;
  font-color:#purple;
  font-weight:bolder;
}
</style>
<script>
var NewsTime = 2000;    //每條資訊完整出現後停留時間
var TextTime = 100;    //每條資訊中的字出現的間隔時間
    
var newsi = 0;
var txti = 0;
var txttimer;   //呼叫setInterval的返回值,用於取消對函式的週期性執行
var newstimer;
    
var newstitle = new Array();    //以陣列形式儲存每個資訊的標題
var newshref = new Array();   //以陣列形式儲存資訊標題的連結
    
newstitle[0] = "螞蟻部落歡迎您";   //顯示在網頁上的文字內容和對應的連結
newshref[0] = "http://www.softwhy.com";
    
newstitle[1] = "http://www.softwhy.com";
newshref[1] = "http://www.softwhy.com";
    
newstitle[2] = "螞蟻特效歡迎您";
newshref[2] = "http://www.51texiao.cn";
    
newstitle[3] = "歡迎再來";
newshref[3] = "http://www.softwhy.com";
    
function shownew(){
  hwnewstr=newstitle[newsi];    //通過newsi傳遞,依次顯示陣列中的內容
  newslink=newshref[newsi];     //依次顯示文字對應的連結
       
  if(txti>=hwnewstr.length){
    clearInterval(txttimer);  //一旦超過要顯示的文字長度,清除對shownew()的週期性呼叫
    clearInterval(newstimer); 
    newsi++;   //顯示陣列中的下一個
        
    if(newsi>=newstitle.length){
      newsi = 0;  //當newsi大於資訊標題的數量時,把newsi清零,重新從第一個顯示
    }
    newstimer = setInterval("shownew()",NewsTime);   //間隔2000ms後重新呼叫shownew()
    txti = 0;  
    return;
  }
  clearInterval(txttimer);  
  document.getElementById("Hotnews").href = newslink;  
  document.getElementById("Hotnews").innerHTML = hwnewstr.substring(0,txti+1);   //擷取字元,從第一個字元到txti+1個字元
      
  txti++;  //文字一個個出現
  txttimer = setInterval("shownew()",TextTime);   
}
 
window.onload=function(){
  shownew();
}
</script>
</head>
<body>
螞蟻部落公告:<a id = "Hotnews" href="" target="_blank"></a>
</body>
</html>

相關文章