WordPress更新JavaScript秒表
我有这个正在工作的JavaScript秒表。该功能是当用户单击“开始”按钮开始和暂停按钮以暂停秒表。变量秒表保存在LocalStorage中,当用户刷新网站并再次开始时,秒表从最后一个秒表时间 + 1开始继续。第一个计时器正在工作,但是我将拥有一个相同容器的数组,从包含秒表时间的数据库中获取。问题在于我的循环。如何为每个计时器容器添加计时器,并从上次保存 + 1开始并从那里继续。我提供一个例子,也许有人可以帮助我。
HTML
<div class="c-add-task-main-container">
<h2 class="c-add-task-title">Time Tracker</h2>
<button class="start">Start</button>
<button class="pause">Pause</button>
<button class="clear">Clear</button>
<div class="output">00:34:21</div>
</div>
<div class="c-add-task-main-container">
<h2 class="c-add-task-title">Time Tracker</h2>
<button class="start">Start</button>
<button class="pause">Pause</button>
<button class="clear">Clear</button>
<div class="output">21:56:22</div>
</div>
<div class="c-add-task-main-container">
<h2 class="c-add-task-title">Time Tracker</h2>
<button class="start">Start</button>
<button class="pause">Pause</button>
<button class="clear">Clear</button>
<div class="output">32:47:35</div>
</div>
<div class="c-add-task-main-container">
<h2 class="c-add-task-title">Time Tracker</h2>
<button class="start">Start</button>
<button class="pause">Pause</button>
<button class="clear">Clear</button>
<div class="output">11:29:03</div>
</div>
<div class="c-add-task-main-container">
<h2 class="c-add-task-title">Time Tracker</h2>
<button class="start">Start</button>
<button class="pause">Pause</button>
<button class="clear">Clear</button>
<div class="output">04:01:14</div>
</div>
JS
let showTime = document.querySelector(".output");
let startTimeButton = document.querySelector(".start")
let pauseTimeButton = document.querySelector(".pause")
let seconds = 0;
let interval = null;
if (localStorage.getItem("stopwatchSeconds") != null) {
seconds = parseInt(localStorage.getItem("stopwatchSeconds"));
}
const timer = () => {
seconds++;
localStorage.setItem("stopwatchSeconds", seconds);
// Get hours
let hours = Math.floor(seconds / 3600);
// Get minutes
let minutes = Math.floor((seconds - hours * 3600) / 60);
// Get seconds
let secs = Math.floor(seconds % 60);
if (hours < 10) {
hours = `0${hours}`;
}
if (minutes < 10) {
minutes = `0${minutes}`;
}
if (secs < 10) {
secs = `0${secs}`;
}
showTime.innerHTML = `${hours}:${minutes}:${secs}`;
};
startTimeButton.addEventListener("click", () => {
pauseTimeButton.style.display = "block";
startTimeButton.style.display = "none";
console.log("START TIME CLICKED");
if (interval) {
return;
}
interval = setInterval(timer, 1000);
});
// Pause function
pauseTimeButton.addEventListener("click", () => {
pauseTimeButton.style.display = "none";
startTimeButton.style.display = "block";
console.log("PAUSE TIME CLICKED");
clearInterval(interval);
interval = null;
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以尝试此片段
HTML
香草JS
You can try this snippet
Html
Vanilla JS
将间隔和计时器保存在array
中,让sepseds = []
,然后我简化了您的代码,开始和暂停按钮,if(time&lt; 10)
用 noreflow noreferrer“>.padstart() /a>
在
Save the interval and timer in array
let seconds = []
and I simplified your code, Start and Pause button are merged,if (time < 10)
change with.padStart()
run on jsFiddle