javascript - Vanilla JS 倒数计时器自动运行
问题描述
我正在尝试构建一个番茄计时器,并且正在添加一个按钮来启动/停止,但我试图让我的计时器不会在页面刷新时自动启动。
var timer = 1500;
var secondsRemaining;
var interval = setInterval(myTimer,1000);
function convertSeconds(timer)
{
var min = Math.floor (timer / 60);
var sec = timer - (min * 60);
//add a leading zero (as a string value) if seconds less than 10
if (sec < 10) {
sec = "0" + sec;
}
return min + ':' + sec;
}
//
function myTimer()
{
document.getElementById("timer").innerHTML = convertSeconds(timer);
timer--;
if (timer < 0)
clearInterval(interval);
}
解决方案
在用户单击“开始”按钮之前不要设置间隔。
就像是...
var timer = 1500;
var secondsRemaining;
var interval; // <= declared, not initialized
function convertSeconds(timer)
{
var min = Math.floor (timer / 60);
var sec = timer - (min * 60);
//add a leading zero (as a string value) if seconds less than 10
if (sec < 10) {
sec = "0" + sec;
}
return min + ':' + sec;
}
//
function myTimer()
{
document.getElementById("timer").innerHTML = convertSeconds(timer);
timer--;
if (timer < 0)
clearInterval(interval);
}
// call this function from "onclick" event handler of button
function startTimer()
{
interval = setInterval(myTimer, 1000)
}
推荐阅读
- python - 无法安装 requirements.txt
- php - 在 SQL 数据库中插入 HEX 代码
- android - 在 recyclerview 适配器中获取用户 uid
- python - train_test_split 在索引切片后不删除 y 训练和测试变量
- layout-editor - 设计编辑器android studio中未显示元素
- google-cloud-dataflow - 使用 google-cloud-dataflow beam.io.avroio.WriteToAvro(
- sql-server - DBUtils能否克服SQLServer:“必须先执行语句才能获得任何结果。”
- oracle - 当我使用表中的一些值更新同一个表时,给出子查询返回太多行错误
- .htaccess - .htaccess 非 www 到 no www SSL 和 www 到 www SSL
- android - 手机号码认证后登录App