我正在使用HTML
,CSS
和JavaScript
编写游戏。而且我创建了一个函数,该函数在HTML代码中对p标签进行倒计时,但是每次执行该功能时,它只会减去一个数字,因此我需要执行大量时间,并且当倒计时结束时,游戏结束会归零。
我试图放入for循环,但是for循环什么也不做。
我的JavaScript
函数:
function time() {
for (i=0;i<30;i++) {
var enem = document.getElementById("enem");
var timer = document.getElementById("timer1").innerHTML;
var timer = parseInt(timer);
var actime = timer - 1;
sleep(1000).then(() => {
timer = document.getElementById("timer1").innerHTML = actime;
if (timer===0) {
enem.parentNode.removeChild(enem);
window.location.href = ('success.html');
}
})
}
}
除time()函数的结果外,我将每1秒30次更改p标签,但仅更改一次。
答案 0 :(得分:1)
您应该为此使用Javascript的setInterval函数。
(function(){
var n = 30;
var tm = setInterval(countDown,1000);
var enem = document.getElementById("enem");
var timer = document.getElementById("timer1");
function countDown(){
n--;
if(n == 0){
clearInterval(tm);
enem.parentNode.removeChild(enem);
window.location.href = ('success.html');
}
timer.innerHTML = n;
}})();
<p id="enem"></p>
<p id="timer1"></p>
答案 1 :(得分:0)
您正在寻找setInterval()
,这是Javascript在每个特定时间段内执行特定操作的方式。
您发布的代码由于Javascript的非阻塞性质而无法使用,它将安排睡眠函数调用,并与下一个循环一起移动。