我有一个项目需要做倒数计时器,但是无法使用任何功能。我知道这可以通过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,它不会像正常的倒数计时器那样倒数。对于项目,它需要从十分钟开始倒数,最后提醒用户已过期,他们将需要刷新页面。

最佳答案

在每个时间间隔重置计时器时,您需要将某些功能移出该功能。您也应该避免将时间存储为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>

关于javascript - 不使用函数的Vanilla Javascript中的倒数计时器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56569124/

10-15 00:02