您好,我有一个计时器,它同时显示分钟和秒,当它低于1分钟时,例如40秒左右,它开始闪烁,它仍然计时正确,但有时会显示一些其他数字,例如27 > 26 > 25,而不是短暂的时间,例如34,它继续使用> 24 > 23,但这些数字之间是什么?我如何删除它们最好检查一下代码。
<div class="container">
<p id="time"></p><br>
<button onclick='timer()'>Start Kviz</button>
</div>
<script>
function timer() {
var min = '01m';
var sec = 30;
var timer = setInterval(function () {
document.getElementById('time').innerHTML = '00d' + ' ' +
'00h' + ' ' + min + ' ' + sec + 's';
sec--;
if (sec === 0) {
min = '00m';
}
if (min === '00m') {
sec = 59;
timer = setInterval(function () {
document.getElementById('time').innerHTML = '00d' +
'00h' + min + sec + 's';
sec--;
if (sec < 0) {
alert ('Time is up!');
clearInterval(timer);
}
}, 1000);
}
}, 1000);
}
</script>
发布于 2018-06-28 08:54:55
您忘记了清除以下代码段中的间隔:
if (min === '00m') {
sec = 59;
clearInterval(timer);
timer = setInterval(function () {
另外,请清除警报消息之前的时间间隔,如下所示:
if (sec < 0) {
clearInterval(timer);
alert ('Time is up!');
}
最后的代码片段如下所示:
<div class="container">
<p id="time"></p><br>
<button onclick='timer()'>Start Kviz</button>
</div>
<script>
function timer() {
var min = '01m';
var sec = 30;
var timer = setInterval(function () {
document.getElementById('time').innerHTML = '00d' + ' ' +
'00h' + ' ' + min + ' ' + sec + 's';
sec--;
if (sec === 0) {
min = '00m';
}
if (min === '00m') {
sec = 59;
clearInterval(timer);
timer = setInterval(function () {
document.getElementById('time').innerHTML = '00d' +
'00h' + min + sec + 's';
sec--;
if (sec < 0) {
clearInterval(timer);
alert ('Time is up!');
}
}, 1000);
}
}, 1000);
}
</script>
https://stackoverflow.com/questions/51073203
复制相似问题