Javascript 考试结束后如何停止计时?
我想在考试结束时停止计时,但要在它达到零之前。请帮我写剧本。谢谢 JavaScript代码:Javascript 考试结束后如何停止计时?,javascript,settimeout,Javascript,Settimeout,我想在考试结束时停止计时,但要在它达到零之前。请帮我写剧本。谢谢 JavaScript代码: var cnt = 165*60; // 165 minutes (2 hours & 45 minutes) convert to seconds function countdown() { if (cnt < 0) { document.f.c.value = "- : - - : - -" ; } else { hour =
var cnt = 165*60; // 165 minutes (2 hours & 45 minutes) convert to seconds
function countdown() {
if (cnt < 0) {
document.f.c.value = "- : - - : - -" ;
}
else {
hour = Math.floor(cnt / 3600);
totalmin = Math.floor(cnt / 60);
min = totalmin - (hour * 60);
sec = cnt - (totalmin * 60);
if (sec < 10) { sec = "0" + sec;}
if (min < 10) {min = "0" + min;}
if (hour < 10) {hour = "0" + hour;}
document.f.c.value = hour + ":" + min + ":" + sec;
cnt--;
_timer = setTimeout("countdown()", 1000);
}
}
var _timer = setTimeout("countdown()", 1000); // tick
var cnt=165*60;//165分钟(2小时和45分钟)转换为秒
函数倒计时(){
if(cnt<0){
document.f.c.value=“-:-:-:-”;
}
否则{
小时=数学楼层(cnt/3600);
totalmin=数学地板(cnt/60);
最小值=总最小值-(小时*60);
秒=碳纳米管-(总最小值*60);
如果(秒<10){sec=“0”+sec;}
如果(min<10){min=“0”+min;}
如果(小时<10){hour=“0”+小时;}
document.f.c.值=小时+“:“+min+”:“+sec;
碳纳米管;
_定时器=设置超时(“倒计时()”,1000);
}
}
var _timer=setTimeout(“倒计时()”,1000);//打上钩
在您的else部分
检查
if(当前时间<总时间)
{
//设置超时
}
我认为最好的选择是使用setInterval而不是setTimeout
setInterval返回间隔的句柄。clearInterval(句柄)将取消该间隔。以下是一些让您开始学习的伪代码:
var global_timer;
function countdown(){
// do some countdown stuff
if([we're done]) {
window.clearInterval(global_timer);
}
}
global_timer = window.setInterval("countdown()", 1000);
我想你的意思是想在倒计时达到0之前结束计时器 首先,您应该使用
setInterval
。它应该适用于所有主要的浏览器(包括IE)。这只是表达“我希望这种事情经常发生”的一种稍微好一点的方式
重复调用函数,每次调用该函数之间有固定的时间延迟
以下是您将如何使用它:
var cnt = 165*60; // 165 minutes (2 hours & 45 minutes) convert to seconds
function countdown() {
if (cnt < 0) {
document.f.c.value = "- : - - : - -" ;
}
else {
hour = Math.floor(cnt / 3600);
totalmin = Math.floor(cnt / 60);
min = totalmin - (hour * 60);
sec = cnt - (totalmin * 60);
if (sec < 10) {sec = "0" + sec;}
if (min < 10) {min = "0" + min;}
if (hour < 10) {hour = "0" + hour;}
document.f.c.value = hour + ":" + min + ":" + sec;
cnt--;
if(cnt <= 0) { # Stops the timer when it reaches 0.
clearInterval(_interval);
}
}
}
var _interval = setInterval(countdown, 1000);
var cnt=165*60;//165分钟(2小时和45分钟)转换为秒
函数倒计时(){
if(cnt<0){
document.f.c.value=“-:-:-:-”;
}
否则{
小时=数学楼层(cnt/3600);
totalmin=数学地板(cnt/60);
最小值=总最小值-(小时*60);
秒=碳纳米管-(总最小值*60);
如果(秒<10){sec=“0”+sec;}
如果(min<10){min=“0”+min;}
如果(小时<10){hour=“0”+小时;}
document.f.c.值=小时+“:“+min+”:“+sec;
碳纳米管;
如果(cnt在用户结束检查时执行的代码中,可能在单击按钮后,只需添加以下行:
window.clearTimeout(_timer);
计时器将停止滴答作响
<input type="button" value="Done" onclick="clearInterval(_interval)">
window.clearTimeout(_timer);