javascript - 我不知道如何在中间停止该功能
问题描述
我有 1 分钟倒计时,但我不知道如何执行以下任务:如果我按下按钮,我希望它停止,然后从停止的同一点继续。此外,我觉得我为非常简单的任务编写了太多代码。有没有人有更好的建议?
我试图继续和中断,但我不知道如何放置它们,因为它没有与 if/else 条件结合。
计时器显示如下:00:00 并倒计时,下方有“开始”按钮。
const startButton = document.querySelector("button");
startButton.onclick = function countdown() {
let sixtySeconds = 60;
let sixtyMinutes = 0;
document.querySelectorAll("span")[0].innerHTML = "0" +sixtyMinutes;
let timer = setInterval( function theTimer(){
sixtySeconds--;
if (sixtySeconds >= 10){
document.querySelectorAll("span")[1].innerHTML = sixtySeconds;
} else if (sixtySeconds < 10){
document.querySelectorAll("span")[1].innerHTML = "0" + sixtySeconds;
} else {
document.querySelectorAll("span")[1].innerHTML = "00";
}
if (sixtySeconds === 0 || sixtyminutes < 60){
sixtyMinutes++;
document.querySelectorAll("span")[0].innerHTML = "0" +sixtyMinutes;
clearInterval(timer);
}
}, 1000);
return countdown();
}
解决方案
您可以通过调用setInterval
并clearInterval
在单击按钮时暂停标志来实现这一点,请检查以下代码:
let timerRef;
let targetCount = 60;
let currentCount = 60;
let stopTimer = false;
let controlButton = document.getElementById('controlButton');
let countLabel = document.getElementById('count');
startTimer();
function startTimer(){
timerRef = setInterval(function() {
if(currentCount == 0 || stopTimer){
clearInterval(timerRef);
}
else {
currentCount--;
countLabel.innerText = currentCount;
}
}, 1000);
}
function pause() {
if(stopTimer == true){
stopTimer = false;
controlButton.innerText = 'Pause';
startTimer();
}
else {
stopTimer = true;
controlButton.innerText = 'Continue';
}
};
<div id='count'>60</div>
<button id='controlButton' onclick='pause()'>Pause</button>
推荐阅读
- c# - 在长时间运行的hangfire进程中发送心跳
- android - Flutter - 将数据从 Future 变量(sqlite)传递到小部件
- sql - 如何从查询中删除完全重复的行,而没有唯一值?
- javascript - 在页面刷新时我得到这个:“/assets/css/bootstrap.min.css”由于 MIME 类型(“text/html”)不匹配(X-Content-Type-Options:nosniff)而被阻止
- c++ - 浮点值 0.0 的表示方式是否与其他浮点值不同?
- python - 如何有效地遍历一个大字符串并记录每个 3 字母子字符串的索引?
- ios - 'WebDriverAgent.xcodeproj' 不存在,xcodebuild 失败,代码为 65
- r - 如何使用geom_col在同一个ggplot中并排绘制两个变量?
- javascript - 当用户选择不使用默认协议处理程序打开应用程序时,后台页面是否有任何事件或通知?
- python - 从 Django 中的 API 填充数据库