javascript中的计时器控件
我在我的项目中使用定时器,我有两个问题。当开始按钮按下时,时间应开始;当结束按钮按下时,时间应结束。javascript中的计时器控件,javascript,html,settimeout,Javascript,Html,Settimeout,我在我的项目中使用定时器,我有两个问题。当开始按钮按下时,时间应开始;当结束按钮按下时,时间应结束。 但1)单击结束按钮时 时间不会停止。 2) 当时间减少并达到1分钟时。时间停止。它也应以秒为单位重复使用 我的建议是: var tim; var sec; var f = new Date(); function f1() { sec = 10 * 60; f2(); document.getElementById("starttime").i
但1)单击结束按钮时
时间不会停止。
2) 当时间减少并达到1分钟时。时间停止。它也应以秒为单位重复使用
我的建议是:
var tim;
var sec;
var f = new Date();
function f1() {
sec = 10 * 60;
f2();
document.getElementById("starttime").innerHTML = "Your started your Exam at " + f.getHours() + ":" + f.getMinutes();
}
function f2() {
if (sec > 0) {
sec--;
tim = setTimeout(f2, 1000);
} else {
document.getElementById("starttime").innerHTML = "times up!!!!";
}
var min = Math.floor(sec / 60);
var secDisplay = sec % 60;
document.getElementById("showtime").innerHTML = "Your Left Time is : " + min + " Minutes," + secDisplay + " Seconds";
}
function end() {
clearTimeout(tim);
sec = 0;
f2();
}
变化如下:
- 删除了
变量,只使用总秒数,而不是两个变量。为了便于显示,我们可以根据总秒数轻松计算分钟数。使用seconds变量可以更轻松地检查剩余时间。正如您所看到的,代码简化了很多min
- 将setTimeout更改为将函数作为参数,而不是字符串
- 添加了
函数,单击“结束”按钮时将调用该函数end()
- 将秒数移到内部
,以便可以重复启动和结束秒数,而无需重新加载页面f1()
- 删除了不必要的
调用。sec变量已经是数值类型,因此无需转换parseInt()
当秒数降至
0
时,计时器将停止。如果您希望在剩余时间达到一分钟时停止,只需将f2()
中的条件更改为If(sec>60){
关于结束按钮的第一个问题,我看不到任何结束按钮功能。但是您可以使用一个清除超时的停止功能
function f3() {
clearTimeout(tim);
//update any text you wish here or move to the next page..
}
对于第二个问题,为什么它以1分钟结束。在检查分钟值是否为零之前,先减小分钟值。因此,当到达f2时,秒为0,分钟为1,然后将分钟值减小到0。,然后检查它是否为零并结束执行。
要解决这个问题,请将“min=parseInt(min)-1;”移动到else之后,它也应该计算最后一分钟
另外,您不需要parseint,因为您使用的是numbers allready您也可以发布事件绑定代码吗?谢谢您…在开始按钮onclick=“f1()”中时间计数开始…然后在结束按钮我必须停止计时器…plz帮助更新的答案,包括在按下结束按钮时结束的功能。谢谢,先生…工作正常…时间结束后导航到另一页…在浏览器中返回按钮(返回到一页)按下按钮后,返回导航应该停止…请帮助我只需更改
时间!!!!
部分以执行window.location='newpage.html
,就像您最初一样。我更改它只是为了在jsfiddle.nethank u上测试它,先生…当时间过去时,导航到另一个页面…在浏览器中返回按钮(返回到一页)被按下它向后导航它应该停止…请帮助我
function f3() {
clearTimeout(tim);
//update any text you wish here or move to the next page..
}