我正在制作一个不错的小按钮游戏。到最后天可能会黑。我刚刚开始,现在遇到了问题。我将在下面显示我的代码,然后解释我的问题。
HTML:
<button onclick="change()" id="btn" class="c">hello?</button>
<div class="c">
<img src="https://i.postimg.cc/mgtbkZ4x/table-removebg-preview.png" id="table" class="obj" onclick = "hide(t)">
<img src="https://i.postimg.cc/SRRy9m9z/image-removebg-preview-2.png" id="rock" class="obj" onclick = "hide(r)">
</div>
CSS:
#btn {
width: 140px;
height: 140px;
outline: groove 3px;
outline-color: #00e4e5;
background-color: #4040ff;
font-size: 20px;
}
.c {
margin: 0;
position: absolute;
top: 50%;
left: 50%;
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
body {
background-color: #1C1412;
}
.obj {
height: auto;
width: 120px;
background-color: #1C1412;
visibility: hidden;
}
#table {
position: absolute;
top: 50%;
left: 40%;
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
#rock {
position: absolute;
top: 50%;
left: 60%;
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
最后,JavaScript:
navigator.mediaDevices.getUserMedia({
video: true
})
好的。现在一切都结束了,我将解释我的问题。请随意在 jsfiddle 网站上测试我的代码(如果您想知道的话,您不必注册。) 当“次”为 33 时,按钮显示“好吧。我闭上眼睛。我会在 10 后睁开眼睛”,它应该倒计时,但它不会。在开关内部,我设置了一个 setInterval (和一个clearInterval),看起来设置得很完美,但它不起作用。 它应该从 10 开始倒数,然后说“嘿!你没有躲起来!” (后面的空白只是填充物,修复后我会删除它。)请帮我解决这个问题。
阻止倒计时按预期工作的问题在于您清除代码这部分的间隔。
case (33):
var count = 10
var dt = setInterval(function() {
if (count <= 0) {
clearInterval(dt);
change();
} else {
count--;
btn.innerText = "my eyes are now closed, and i'll open them in " + count;
}
}, 1000);
clearInterval(dt); // This line is not needed and is clearing the interval immediately
break;
您在设置间隔后立即清除了间隔,这导致倒计时不起作用。
设置间隔后删除
clearInterval(dt);
线。
case (33):
var count = 10;
var dt = setInterval(function() {
if (count <= 0) {
clearInterval(dt);
change();
} else {
count--;
btn.innerText = "my eyes are now closed, and i'll open them in " + count;
}
}, 1000);
break; // Removed the clearInterval(dt);