2016-04-24 14 views
0

Example停止ルーピングテキストしかし、私は効果をこのタイピングを持っている「と入力します」しようとしていると私はそれが一度だけ行くようにする方法を疑問に思って

var text = 'ENTER...'; 
var chars = text.split(''); 
var enter = document.getElementById("enter") 
var i = 0; 
setInterval (function(){ 
    if (i < chars.length){ 
     enter.innerHTML += chars[i++]; 
    }else{ 
     i = 0; 
     enter.innerHTML = ""; 
    } 
}, 200); 

効果を実行します。それで、 "ENTER ..."とタイプして停止します。 Example

答えて

2
var text = 'ENTER...'; 
var enter = document.getElementById("enter") 
var i = 0; 
(function nextLetter() { 
    enter.innerHTML = text.substr(0, ++i); 
    if (i < text.length) { 
     setTimeout(nextLetter, 200); 
    } 
})(); 

編集:あなたはどちらかのsetTimeout(1時間「スリープ」)を使用するか、のsetIntervalの戻り値を覚えて、あなたはそれが/それは実行したく必要はありません後てclearIntervalすることにより、そのタイマーを破壊する必要があります。

0

var text = 'ENTER...'; 
 
var chars = text.split(''); 
 
var enter = document.getElementById("enter") 
 
var i = 0; 
 
var interval = setInterval (function(){ 
 
    if(i == chars.length) { 
 
     clearInterval(interval); 
 
     return; 
 
    } 
 
    
 
    if (i < chars.length){ 
 
     enter.innerHTML += chars[i++]; 
 
    }else{ 
 
     i = 0; 
 
     enter.innerHTML = ""; 
 
    } 
 
}, 200);
<div id="enter"></div>

1

あなたがintervalを使用する場合は、clearIntervalでそれを停止する必要があります。やめてif-statementに、変数として宣言され内部インターバル機能、:

var text = 'ENTER...'; 
var enter = document.getElementById("enter") 
var i = 0; 

var interval = setInterval(function() { 
    enter.innerHTML += text[i]; 
    i += 1; 
    if(i === text.length) { 
     clearInterval(interval); 
    } 
}, 200); 

JSFiddle

関連する問題