你好,我想把倒计时转到20:00,例如,(20分钟),我怎么才能从我的代码开始呢?
let timer;
const startTimer = (duration) => {
const timerElt = document.getElementById('timer');
let counter = duration;
timerElt.textContent = counter;
timer = setInterval(function() {
counter--;
timerElt.textContent = counter;
if (counter === 0) {
timerElt.textContent = '';
clearInterval(timer);
document.querySelector('.reservation').textContent = '';
}
}, 1000);
};
发布于 2018-08-16 15:51:06
试试:
const timer = (minutes, el) => {
const pad = (n) => n.toString().padStart(2, '0');
const format = (n) => `${pad(Math.floor(n / 60))}:${pad(n % 60)}`;
const display = (n) => el.textContent = format(n);
let seconds = minutes * 60;
display(seconds);
const interval = setInterval(() => {
display(--seconds);
if (seconds === 0) {
clearInterval(interval);
}
}, 1000);
};
timer(1, document.getElementById('timer1'));
timer(5, document.getElementById('timer5'));
timer(20, document.getElementById('timer20'));
One minute: <span id="timer1"></span>
<br>
Five minutes: <span id="timer5"></span>
<br>
Twenty minutes: <span id="timer20"></span>
与你的版本的主要区别实际上仅限于根据秒数计算分钟和秒,并将它们显示在00:00
format.
Because setInterval()
已经知道有一点漂移,如果你想要完全准确,你必须建立一个校正机制,以检查系统日期。
发布于 2018-08-16 17:13:03
试试这个:
let timer;
const startTimer = (duration) => {
const timerElt = document.getElementById('timer');
let counter = duration * 60;
timerElt.textContent = "${Math.floor(counter / 60)}:${(counter % 60).toString().padStart(2, '0')}";
timer = setInterval(function() {
counter--;
timerElt.textContent = counter;
if (counter === 0) {
timerElt.textContent = '';
clearInterval(timer);
document.querySelector('.reservation').textContent = '';
}
}, 1000);
};
https://stackoverflow.com/questions/-100002217
复制相似问题