javascript - Javascript 计数器故障排除
问题描述
致力于在 JS 中制作 2 分钟计时器。我是新人,所以请多多包涵。我想制作计时器,以便当您单击按钮时(我已经在 js 中制作了按钮),它将时间从 2 分钟递减。这是我到目前为止所拥有的。代码不会逐秒下降。任何建议都会有所帮助,谢谢!
const startingMinutes = 2
let time = startingMinutes * 60
let timerId = setInterval(countDown, 1000)
function countDown() {
const minutes = Math.floor(time / 60)
let seconds = time % 60
time--
if (timerId <= -startingMinutes) {
countdown.innerHTMl = 'Good Luck!'
clearInterval(timerId)
}
if (timerId <= 0) {
countdown.innerHTML = 'Time is up!'
clearInterval(timerId)
}
button.addEventListener('click', () => {
countDown()
countdown.innerHTML = minutes + ' minutes ' + ': ' + seconds + ' seconds '
})
}
timerId = setInterval(countDown, 1000)
解决方案
这项工作成功:
const startingMinutes = 0.25
let time = startingMinutes * 60
let timerId = setInterval(countDown, 1000)
function countDown() {
const minutes = Math.floor(time / 60)
let seconds = time % 60
time--
console.log(minutes, 'minutes:', seconds, 'seconds');
if (time <= 0) {
console.log('Time is up!');
clearInterval(timerId)
}
}
然后,只需在单击处理程序中使用countDown函数调用setInterval
推荐阅读
- postgresql - terraform jsoncode 秘密管理器
- android - 手机死机,充电电流IBAS=0mA。想知道什么情况下手机会关机充电
- php - 如何在 wordrpess 搜索中向 no-search-result 和 found-search-result 页面添加单独的类 - is_search()
- laravel - Laravel 8 - 通过表 x 或 y 有很多
- shader - Threejs WebXR 和 GPGPU 问题,计算的纹理在 VR 中的某些角度变黑
- typescript - 声纳云代码覆盖率说部分被测试覆盖,但是那条线上没有条件
- c# - 连接关闭:如何找出哪个端点是原因
- c++ - 有没有办法解析 Hevc rtsp 数据包并在 C++ 应用程序中查找高度和宽度
- python - 在提取应用程序的 PlayStore Review 数据时,我无法提取所有数据,循环不适用于给定的所有范围
- python-asyncio - 如何在不同的线程中为 asyncio 运行“loop_in_executor”?