- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我开始构建一个倒计时器。到目前为止,它基本上按照我想要的方式工作。按钮将启动或暂停计时器。但是,如果我多次启动和暂停它,间隔将不再保持设置为 1000 毫秒。这让我认为它现在在每次单击按钮时并行运行多个间隔。我不确定如何解决这个问题或者问题到底出在哪里。
function startCountDown() {
running = !running;
running ? startButton.value = "Stop Countdown" : startButton.value = "Start Countdown";
let t = timeDisplay.innerHTML.replace(/:/g, '');
let seconds = t.slice(-2)
let minutes = t.slice(-4, -2);
let hours = t.slice(-6, -4);
seconds > 60 ? seconds = 59 : seconds;
minutes > 60 ? minutes = 59 : minutes;
secondsRemaining = (hours * 3600) + (minutes * 60) + (seconds * 1)
intervalHandle = setInterval(tick, 1000)
if (running === false) {
clearInterval(intervalHandle)
}
}
function tick() {
if (running) {
secondsRemaining--;
console.log(secondsRemaining)
hour = Math.floor(secondsRemaining / 3600)
min = Math.floor((secondsRemaining - (hour * 3600)) / 60);
sec = Math.floor((secondsRemaining - (hour * 3600) - (min * 60) ));
timeDisplay.innerHTML = `${hour}:${min}:${sec}`
if (secondsRemaining === 0 || running === false) {
clearInterval(intervalHandle)
}
}
}
最佳答案
在行中
intervalHandle = setInterval(tick, 1000)
if (running === false) {
clearInterval(intervalHandle)
}
每次调用 startCountDown
时都会启动一个新的计时器。因此,如果之前有一个正在运行的计时器,您就会丢失它的 ID,因为新计时器的 ID 存储在 intervalHandle
中。然后,如果 running
标志为 false
,您只需停止新创建的计时器,前一个计时器将永远运行。
换句话说,每隔一秒调用 startCountDown
就会泄漏一个计时器。
您应该将代码重写为类似的内容
if (running === false) {
clearInterval(intervalHandle);
} else {
intervalHandle = setInterval(tick, 1000);
}
关于javascript倒计时器,点击事件后间隔加快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41666831/
我想在 android 中扫描黑底白字条码。我使用过 zxing,它允许我只扫描白底黑字。我如何扫描和倒置条形码或使用哪个库?感谢您的帮助。 最佳答案 如果您仍在引用 journeyapps 嵌入式
所以我在 youtube 上观看了一些介绍性类(class)以学习 OpenGL 的基础知识并学习了诸如制作三角形和简单相机类等内容。我一直想尝试制作体素引擎,这显然是第一个我想做的是一个我最终可以复
这个问题在这里已经有了答案: Div with cut out edges, border and transparent background (6 个答案) 关闭 8 年前。
我有一张图片,我正在查看用 HTML 创建的小型网站的基本定制。 我知道您可以对图像进行倒 Angular 处理,如 this question here 中所示,这给出了 45 度切割。 我希望每个
我必须在 iOS 上创建一个自定义形状(倒 T)边框的 Uiview。我附上下面的截图。我进行了很多研究,找到了一种使用 here 中的 UIBezierPath 的方法. 但我不知道如何将我的 Vi
我是一名优秀的程序员,十分优秀!