簡體   English   中英

如何使此代碼像 while(true) 一樣永久循環?

[英]How do I make this code loop permanently like while(true)?

我創建了一台打字機,它工作正常。 唯一的問題是我無法使代碼循環。 有什么簡單的方法可以制作嗎? 我的錯誤在哪里? 我想它不會循環,因為如果我進行循環,它比函數中的延遲“更快”。

我的代碼是 JavaScript。 我希望它永久循環,但我也嘗試了一個普通的 for 循環,即使這樣它也不會循環。

 var today = new Date(); var dd = today.getDate(); var mm = today.getMonth() + 1; //January is 0! var yyyy = today.getFullYear(); if (dd < 10) { dd = '0' + dd; } if (mm < 10) { mm = '0' + mm; } today = dd + '/' + mm + '/' + yyyy; var i = 0; var txt = 'welcome to IDM...' + today + "!"; var speed = 50; var t = true; var loopTime = 50; // How often in milliseconds the loop should //be run var intervalId = setInterval(typeWriter(), 50); function typeWriter() { if (i < txt.length) { document.getElementById("demo").innerHTML += txt.charAt(i); i++; setTimeout(typeWriter, speed); } else { k = txt.length; (function theLoop(k) { setTimeout(function() { document.getElementById("demo").innerHTML = txt.substring(0, k); if (k--) { i--; // If i > 0, keep going theLoop(k); // Call the loop again, //and pass it the current value of i } }, 200); })(txt.length); } }

我需要這個程序永久循環。

您可以將代碼添加到大型函數中,然后執行以下操作:

function largeFunction() {
  // Add code here
}

var loopTime = 50; // How often in milliseconds the loop should be run
var intervalId = setInterval(largeFunction, loopTime);

這是一個功能正常的setInterval的小例子:

 var count = 0; function largeFunction() { document.querySelector("#count").textContent = count++; } var loopTime = 1E3; var intervalId = setInterval(largeFunction, loopTime);
 <div id="count"></div>

此外,如果您想停止循環,只需調用clearInterval(intervalId);

我想這就是你要求的:

 var today = new Date(); var dd = today.getDate(); var mm = today.getMonth() + 1; //January is 0! var yyyy = today.getFullYear(); if (dd < 10) { dd = '0' + dd; } if (mm < 10) { mm = '0' + mm; } today = dd + '/' + mm + '/' + yyyy; var txt = 'welcome to IDM...' + today + "!"; var size = 0, mode = 1, speed = 50; var intervalId = setInterval(loop, speed); function loop() { if (size <= 0) { mode = +1; size = 0; } else if (size >= txt.length - 1) { mode = -1; size = txt.length - 1; } size += mode; document.getElementById("demo").innerHTML = txt.substring(0, size); }
 <div id="demo"></div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM