JavaScript 字元逐個輸出效果
使用鍵盤打字的時候,字元會螢幕上逐個輸出。
下面通過例項程式碼介紹一下利用JavaScript實現字元逐個輸出效果。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script type="text/javascript"> function Reader(content,cID,stopID,continueID){ this.conLoad=document.getElementById(cID); this.stopBtn=document.getElementById(stopID); this.continueBtn=document.getElementById(continueID); this.content=content; this.index=0; var t=this; this.stopBtn.onclick=(function(){ return function(){ t.stopReader(t); }; })(t); this.continueBtn.onclick=(function(){ return function(){ t.continueReader(t); }; })(t); } Reader.prototype={ startReader:function(){ var t = this; t.toId=setInterval(function(){ if(t.content[t.index]){ t.conLoad.innerHTML+=t.content[t.index]; } t.index++; if(t.content.length==t.index){ clearInterval(t.toId); t.conLoad.innerHTML; } }, 200); }, stopReader:function(t){ t.flag=true; clearInterval(t.toId); }, continueReader:function(t){ if(t.flag){ t.startReader(); } t.flag=false; } }; var content="螞蟻部落歡迎您,只有努力奮鬥才會有美好的明天。"; window.onload=function(){ new Reader(content,"content","btnStop","btnContinue").startReader(); }; </script> <body> <div id='content'></div> <div id='operate'> <input type="button" id='btnStop' value="暫停"/> <input type="button" id='btnContinue' value="繼續"/> </div> </body> </html>
程式碼實現了我們的要求,能夠實現字串文字逐個輸出效果,下面詳細介紹一下它的實現過程。
一.程式碼註釋:
(1).function Reader(content,cID,stopID,continueID){},宣告一個函式,被用作建構函式,content是要逐個輸出字元的字串,cID是要顯示字串的元素的id屬性值,stopID是暫停按鈕的id屬性值,continueID是繼續按鈕的id屬性值。
(2).this.conLoad=document.getElementById(cID),獲取顯示字串的元素物件。
(3).this.stopBtn=document.getElementById(stopID),獲取停止按鈕物件。
(4).this.continueBtn=document.getElementById(continueID),獲取繼續按鈕物件。
(5).this.content=content,將字串賦值給變數content。
(6).this.index=0,將index屬性的初始值設定為0,index將用作字串中字元的索引。
(7).var t=this,將物件的引用賦值給t,這一點很重要,否則當點選按鈕觸發事件執行事件處理函式的時候,就會出現找不到stopReader()和continueReader()函式的錯誤,因為如果是this.stopReader()或者this.continueReader()的話,this是指向按鈕物件的,而這兩個函式都是屬於new Reader()物件的。
(8).this.stopBtn.onclick=(function(){
return function(){
t.stopReader(t);
};
})(t);
註冊事件處理函式,這裡是利用匿名函式返回一個函式物件的方式。
(9).this.continueBtn.onclick=(function(){
return function(){
t.continueReader(t);
};
})(t);
和上面是同樣的道理,就不用再多說了。
(10).Reader.prototype={},這裡是重寫了原型物件,儘可能的修改而不是重寫原型。
(11).startReader:function(){),此函式可以用來挨個輸出字元。
(12).var t = this,將物件的引用賦值給變數t,道理其實和上面介紹的一樣。
(13).t.toId=setInterval(function(){},200),利用定時器函式每隔200毫秒輸出一個字元。
(14).if(t.content[t.index]){t.conLoad.innerHTML+=t.content[t.index]},如果當前索引位置存在字元,則將元素中的內容累加,這樣就出現了打字機效果。
(15).t.index++,索引加1。
(16).if(t.content.length==t.index){
clearInterval(t.toId);
t.conLoad.innerHTML;
}
如果index值等於字串的長度,那麼就停止定時器函式的執行,也就是字串已經輸出完畢。
(17).stopReader:function(t){
t.flag=true;
clearInterval(t.toId);
}
暫停按鈕的事件處理函式。
(18).continueReader:function(t){
if(t.flag){
t.startReader();
}
t.flag=false;
}
繼續按鈕的事件處理函式。
二.相關閱讀:
(1).this參閱JavaScript this一章節。
(2).建構函式參閱JavaScript 建構函式一章節。
(3).物件原型參閱JavaScript prototype原型一章節。
(4).setInterval()參閱JavaScript setInterval()一章節。
(5).clearInterval()參閱window.clearInterval()一章節。
相關文章
- javascript輸出頁面節點層級效果JavaScript
- 輸入一個ASCII碼,輸出對應的字元ASCII字元
- 字元輸出流_Writer類&FileWriter類介紹和字元輸出流的基本使用_寫出單個字元到檔案字元
- ncurses輸出函式:字元+字串的輸出函式字元字串
- JavaScript Replace 多個字元JavaScript字元
- javascript限制textarea文字框輸入字元個數程式碼例項JavaScript字元
- c語言: 鍵盤輸入一個n個字元的串,然後按字母表順序輸出這n個字元C語言字元
- 寫一個函式,輸入一個4位數字,要求輸出這4個數字字元函式字元
- JavaScript 輸出介紹JavaScript
- 輸出儲存在記憶體中的字串(迴圈輸出每一個的字元和一次性全部輸出)記憶體字串字元
- 將輸入的字元轉化為int格式輸出字元
- 點選退格鍵刪除整個單詞而不是逐個字元刪除字元
- web 練手 JavaScript 輸出WebJavaScript
- 轉載:字元輸出流Writer簡要概括字元
- js如何將字串中的字元逐字輸出JS字串字元
- 用javascript完成pos機的輸入輸出JavaScript
- JavaScript統計字元出現的次數JavaScript字元
- JavaScript實時計算輸入文字框字元數量JavaScript字元
- 用javascript實現一門程式語言-字元輸入流JavaScript字元
- JavaScript 漢字方式輸出星期JavaScript
- JavaScript 輸出崑崙主管641480JavaScript
- C語言中寫一個程式將浮點型轉化成字元型輸出C語言字元
- JavaScript統計字串中字元出現次數JavaScript字串字元
- C++中的字元陣列逐個賦值時報錯的解決方法C++字元陣列賦值
- 逆序輸出字元字元
- JavaScript資料型別及輸出JavaScript資料型別
- JavaScript迴圈輸出星星圖案JavaScript
- 輸入一段字串,去除字串中重複的字元,並輸出字串字元
- JavaScript點選按鈕彈出層效果JavaScript
- javascript 緩慢出現的廣告層效果JavaScript
- 【char* 字元指標的用法】及【輸出NULL的問題】字元指標Null
- 淺說兩種輸出Oracle字元檔案的方法Oracle字元
- Android動畫效果之Frame Animation(逐幀動畫)Android動畫
- C語言:計算輸入字元的個數C語言字元
- C語言計算輸入字元的個數C語言字元
- JavaScript:(a==1 && a==2 && a==3)能輸出true麼?JavaScript
- 11 個最好的 JavaScript 動態效果庫JavaScript
- Ubuntu下鍵盤輸入錯亂問題,輸入雙引號輸出的是@符號,輸入#號輸出的是未知語言的字元...Ubuntu符號字元