2017-03-25 13 views
0

5秒後にこのJavaScript機能を停止しようとしています。ここでJavaScriptで一定の時間が経過してから間隔を空ける

コードです:

<p id="para"></p> 

var niceThings = ["You're cool", "You're smart", "You're good looking", "You're a baus", "You're a cool cat."]; 
var i =0; 

function compliment() { 

    document.getElementById("para").innerHTML = niceThings[i]; 

    if(i < niceThings.length-1) { 
     i++;  
    } 
    else { 
     i=0;  
    } 
} 

window.onload = setInterval(compliment, 500); 

私はどこかにsetTimeoutメソッドを使用する方法があります確信しているが、私は初心者くさいですよ。何かご意見は?

+0

ここでの問題のようですし、あなたの条件は何ですか?何 –

+0

この機能は、一定の時間が経過した後、たとえば5秒ほど後に停止します。 – Brixsta

+0

今のところ、これらの褒め言葉を半分毎に無期限に循環させます。 – Brixsta

答えて

3

setIntervalは、そのトラックの愚かな機能を停止するために5秒後にclearIntervalに渡すことができるトークンを返します。

また、モジュロ(%)演算子を使用して、アレイループロジックを簡略化することができます。

var niceThings = [ 
 
    "You're cool", 
 
    "You're smart", 
 
    "You're good looking", 
 
    "You're a baus", 
 
    "You're a cool cat." 
 
] 
 

 
var p = document.getElementById("para") 
 
var i = 0 
 

 
function compliment() { 
 
    p.textContent = niceThings[i] 
 
    i = (i + 1) % niceThings.length 
 
} 
 

 
setTimeout(clearInterval, 5000, 
 
    setInterval(compliment, 500) 
 
)
<p id="para"></p>

+0

よくプレーしました。ありがとうございました! – Brixsta

+0

遅れて申し訳ありません。私はまだstackoverflowと一般的なコーディングを学んでいます。ご協力ありがとうございました! – Brixsta

+0

問題はありません、あなたは歓迎です:)あなたのプロジェクトの残りの部分には幸運があります。 – gyre

関連する問題