Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中暂停和恢复计时器?_Javascript_Timer - Fatal编程技术网

如何在JavaScript中暂停和恢复计时器?

如何在JavaScript中暂停和恢复计时器?,javascript,timer,Javascript,Timer,我一直在尝试创建自己的“Pomotoro”计时器,但在尝试暂停、暂停和恢复计时器时遇到了问题。我希望我的计时器在40:00启动,它当前在按下“开始”按钮时运行,在按下“停止”按钮时停止,但在再次按下“开始”按钮时不会恢复 var startButton=document.getElementById(“startButton”); var stopButton=document.getElementById(“stopButton”); var resetButton=document.get

我一直在尝试创建自己的“Pomotoro”计时器,但在尝试暂停、暂停和恢复计时器时遇到了问题。我希望我的计时器在40:00启动,它当前在按下“开始”按钮时运行,在按下“停止”按钮时停止,但在再次按下“开始”按钮时不会恢复

var startButton=document.getElementById(“startButton”);
var stopButton=document.getElementById(“stopButton”);
var resetButton=document.getElementById(“resetButton”);
var isRunning=false;
addEventListener(“单击”,函数(){
触发器();
});
stopButton.addEventListener(“单击”),函数(){
停止计时器();
});
resetButton.addEventListener(“单击”,函数(){
重置计时器();
});
功能启动计时器(持续时间、显示){
var定时器=持续时间,分钟,秒;
如果(正在运行===false){
isRunning=setInterval(函数(){
分钟=parseInt(计时器/60,10);
秒=parseInt(计时器%60,10);
分钟=分钟<10?“0”+分钟:分钟;
秒=秒<10?“0”+秒:秒;
display.textContent=分钟+“:”+秒;
计时器--;
}, 1000);
}否则{
isRunning=!isRunning;
}
如果(计时器<0){
清除间隔(正在运行);
}
};
函数触发器(){
var五分钟=2400,
display=document.querySelector(“#time”);
startTimer(五分钟,显示);
};
函数stopTimer(){
清除间隔(正在运行);
};

开始
停止
重置

在全局范围内声明
五分钟
,并仅在单击重置按钮时重置

您需要在匿名函数中更新它的值以保持其运行。这里的问题是你只能有一个计数器

var startButton=document.getElementById(“startButton”);
var stopButton=document.getElementById(“stopButton”);
var resetButton=document.getElementById(“resetButton”);
var isRunning=false;
var五分钟=2400;
var display=document.querySelector(“#time”);
addEventListener(“单击”,函数(){
startTimer(五分钟,显示);
});
stopButton.addEventListener(“单击”),函数(){
停止计时器();
});
resetButton.addEventListener(“单击”,函数(){
停止计时器();
五分钟=2400;
display.textContent='0:00';
});
功能启动计时器(持续时间、显示){
var定时器=持续时间,分钟,秒;
如果(正在运行===false){
isRunning=setInterval(函数(){
分钟=parseInt(计时器/60,10);
秒=parseInt(计时器%60,10);
分钟=分钟<10?“0”+分钟:分钟;
秒=秒<10?“0”+秒:秒;
display.textContent=分钟+“:”+秒;
计时器--;
//您需要更新原始变量
五分钟--;
}, 1000);
}否则{
isRunning=!isRunning;
}
如果(计时器<0){
停止计时器();
}
};
函数stopTimer(){
清除间隔(正在运行);
isRunning=false;
};
0:00
开始
停止
重置