首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >不使用函数的Vanilla Javascript中的倒计时计时器

不使用函数的Vanilla Javascript中的倒计时计时器
EN

Stack Overflow用户
提问于 2019-06-13 03:26:05
回答 1查看 2K关注 0票数 0

我有一个项目,我需要做一个倒计时计时器,但没有功能可以使用。我知道这可以使用setInterval来完成,但是,我找到的大多数文档都显示了结合使用的函数。W3schools有一个很好的例子,但是它使用了一个函数。我知道我会怎么做

我已经写了一些代码,可以显示分钟和秒,但是不能让它真正倒计时。有没有办法在没有函数的情况下做到这一点?

代码语言:javascript
复制
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,它不会像正常的倒计时计时器那样倒计时。对于该项目,它需要从十分钟开始倒计时,并在结束时警告用户,这是到期的,他们将需要刷新页面。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-13 03:42:48

你需要把一些东西移出函数,因为你每隔一段时间就会重置计时器。您应该避免将时间存储为Date对象,因为您只需要时间戳。

代码语言:javascript
复制
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)
代码语言:javascript
复制
<span id=timer></span>

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56569124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档