javascript - javascript倒数计时器用户输入
问题描述
尝试使用用户输入构建一个简单的倒数计时器。
我正在尝试使用反向 for 循环简单地倒计时秒数,但它似乎对我不起作用。我可以得到一些帮助,谢谢。
//button
let button = document.getElementById('btn');
button.addEventListener('click', timer);
//Seconds variable
let seconds = 60;
function timer(){
let mins = parseInt(document.getElementById('min').value);
//Make the seconds tick down from 60
for(let i= seconds - 1; i >= 0; i--){
setInterval(function(){
seconds[i]}, 1000);
console.log(seconds[i]);
}
if(mins === 0 && seconds == 0){
console.log('completed')
}else{
console.log('still going');
}
//output the time.
let time= document.getElementById('time');
};
解决方案
看起来您在这里混合了同步和异步代码。您的 for 循环将创建 60 个不同的 setInterval。我建议您多研究一下异步 JavaScript 的工作原理。为您的计时器功能尝试更多类似的东西:
let i = 60;
const intervalFunction = () => {
console.log(i);
if (i < 1) {
clearInterval(interval)
}
i--;
}
let interval = setInterval( intervalFunction, 1000);
推荐阅读
- reporting-services - SQL Server BI,报告工具
- go - 更改权限位 Google Cloud Functions
- html - 在 HTML Angular 中显示来自 JSON 的图像
- java - HTTPS 重定向通过隧道丢失
- c# - SignalR:组客户端计数低于零
- c# - 函数中的整数溢出
- python - 使用 imaplib {outlook} 从收件箱移动到存档
- r - R data.table:.SD 的名称不可分配
- r - R 版本 4.0.2,Windows 10,错误:在 mean.default(combined[colname], na.rm = TRUE) 中:参数不是数字或逻辑:返回 NA
- list - 从列表列表中删除一个元素 Haskell