我有一个项目,我需要做一个倒计时计时器,但没有功能可以使用。我知道这可以使用setInterval来完成,但是,我找到的大多数文档都显示了结合使用的函数。W3schools有一个很好的例子,但是它使用了一个函数。我知道我会怎么做
我已经写了一些代码,可以显示分钟和秒,但是不能让它真正倒计时。有没有办法在没有函数的情况下做到这一点?
const timeSpan = document.getElementById('timer');
// Get Time Now
var timeMinutes = 10;
var currentTime = Date.parse(new Date());
var deadline = new Date(currentTime + timeMinutes * 60 * 1000);
var distance = deadline - currentTime;
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
timeSpan.innerHTML = minutes + 's' + seconds;
这显示了分钟和秒,但没有setInterval或setTimeOut,它不会像正常的倒计时计时器那样倒计时。对于该项目,它需要从十分钟开始倒计时,并在结束时警告用户,这是到期的,他们将需要刷新页面。
发布于 2019-06-13 03:42:48
你需要把一些东西移出函数,因为你每隔一段时间就会重置计时器。您应该避免将时间存储为Date对象,因为您只需要时间戳。
const timeSpan = document.getElementById('timer');
const mins = 10;
const now = new Date().getTime();
const deadline = mins * 60 * 1000 + now;
setInterval(() => {
var currentTime = new Date().getTime();
var distance = deadline - currentTime;
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
timeSpan.innerHTML = minutes + 's' + seconds;
}, 500)
<span id=timer></span>
https://stackoverflow.com/questions/56569124
复制相似问题