如何在JavaScript中進(jìn)行無限循環(huán)?我正在嘗試制作幻燈片,可以正常工作,但是無法循環(huán)播放。我什至不能讓它循環(huán)兩次。我現(xiàn)在正在使用的代碼是window.onload = function start() { slide();}function slide() { var num = 0; for (num=0;num<=10;num++) { setTimeout("document.getElementById('container').style.marginLeft='-600px'",3000); setTimeout("document.getElementById('container').style.marginLeft='-1200px'",6000); setTimeout("document.getElementById('container').style.marginLeft='-1800px'",9000); setTimeout("document.getElementById('container').style.marginLeft='0px'",12000); }}如果沒有for事物,它確實(shí)會經(jīng)歷一次。當(dāng)我輸入for時,它要么使Firefox鎖定,要么僅循環(huán)一次。我確信這是一件非常簡單的事情,即使必須循環(huán)1,000,000次或其他而不是無限次,這對我來說也很好。另外,我不想使用jQuery或其他人創(chuàng)建的東西。我正在學(xué)習(xí)JavaScript,這部分是為了幫助我學(xué)習(xí),部分是因?yàn)槲艺趪L試制作盡可能多的基于HTML5的系統(tǒng)。編輯:我認(rèn)為它凍結(jié)的原因是因?yàn)樗淮螆?zhí)行所有代碼,然后將其存儲在緩存或其他內(nèi)容中。我想要它執(zhí)行的操作是一次,然后再次從頂部開始,這就是我一直認(rèn)為循環(huán)的目的。在“批處理”(命令提示符)腳本中,可以使用“ GOTO”命令來完成。我不知道JS是否具有等效功能,但這確實(shí)是我的目標(biāo)。
3 回答

繁星點(diǎn)點(diǎn)滴滴
TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個贊
正確的方法是使用單個計(jì)時器。使用setInterval,您可以實(shí)現(xiàn)所需的目標(biāo),如下所示:
window.onload = function start() {
slide();
}
function slide() {
var num = 0, style = document.getElementById('container').style;
window.setInterval(function () {
// increase by num 1, reset to 0 at 4
num = (num + 1) % 4;
// -600 * 1 = -600, -600 * 2 = -1200, etc
style.marginLeft = (-600 * num) + "px";
}, 3000); // repeat forever, polling every 3 seconds
}
添加回答
舉報
0/150
提交
取消