javascript - 暂停和启动 JS 倒计时
问题描述
我正在尝试为我的网站开发一个百夫长倒数计时器。这是一个饮酒游戏。
计时器的工作方式是:它是一个 60 秒倒计时计时器。每次计时器达到 0 时,它都会为射击计数器 +1 并重新启动。它将执行此操作 100 次。
游戏是你必须做 1 次射击,每分钟 100 分钟。我是 JS 的初学者,我学到了很多东西,但我很难让它按照我想要的方式工作。
我只需要一个“开始”按钮、一个“暂停”按钮和一个“重置”按钮,但我似乎无法找到一种方法让这些按钮工作而不会弄乱计时器。
这是HTML代码:
<div class="inner">
<h1 class="heading alt">Centurions Timer</h1>
<p>1 Shot. Every Minute. 100 Minutes.</p>
<p>___________________________________</p>
<div id="timer">
<p id="seconds">60</p>
<p id="shots">0</p>
</div>
<input type="button" value="Start" onclick="timer()">
<input type="button" value="Pause" onclick="clearInterval(myTimer)">
</div>
这是JS代码:
var seconds = 60;
var shots = 0;
var timer;
var c = 60;
function timer() {
timer = setInterval(myTimer, 1000)
}
function myTimer() {
document.getElementById("seconds").innerHTML = --c;
if (c == 0) {
shots = shots + 1;
c = 60;
}
document.getElementById("shots").innerHTML = shots;
}
如果有人可以帮助我并向我展示我做错了什么以及如何使代码变得更好,请这样做!
解决方案
首先,考虑重命名您的方法timer()
或变量timer
以消除两者之间的歧义。
接下来,setInterval()
返回一个区间 ID,您将其存储在timer
.
clearInterval()
将区间 ID 作为参数,因此请尝试将timer
变量而不是myTimer
(函数)传递给它
推荐阅读
- ruby-on-rails - 如何在“索引”视图上列出双重嵌套属性值?
- javascript - Fabricjs 无法获取单选按钮来设置织物对象更改
- pdf - 如何使用python或java仅从pdf中提取段落?
- html - 如何使用 shareArticle 从我们的网站分享我们在linkedin 中的帖子
- vb.net - 在 Outlook 2016 中停用的旧版 VSTO 添加
- python - 如何基于一个简单的python程序构建一个简单的移动应用程序?
- javascript - Jquery Sortable:克隆+追加到多个可能的目标
- excel - 如何在 Cognos 中过滤掉 No Data Available 单元格?
- printing - 酒保标签打印预览只显示一个标签
- scala - IOException during split java.util.concurrent.ExecutionException: java.io.FileNotFoundException when loading HFile to HBase