2种简单的js倒计时方式

yizhihongxing

下面是“2种简单的js倒计时方式”的完整攻略,可以帮助网页作者快速实现倒计时功能。

1. 使用setInterval函数

原理

倒计时的原理基本上是每隔一段时间执行一次代码,去减小剩余的时间,并打印出更新后的倒计时。setInterval函数可以用来每隔指定的时间执行一段代码。

实现方法

首先,需要在html代码中定义一个显示倒计时的元素,例如:

<p id="timer">倒计时:00:00:00</p>

然后在js代码中使用setInterval函数每秒执行一次倒计时:

//设置倒计时截止时间,可以设置为任何未来的时间
const deadline="May 30 2022 10:00:00 GMT+0200";

function getTimeRemaining(endtime){

  //得到倒计时剩余时间的毫秒数
  const total = Date.parse(endtime) - Date.parse(new Date());

  //计算剩余时间的天、小时、分钟和秒数
  const days = Math.floor(total / (1000 * 60 * 60 * 24));
  const hours = Math.floor((total / (1000 * 60 * 60)) % 24);
  const minutes = Math.floor((total / 1000 / 60) % 60);
  const seconds = Math.floor((total / 1000) % 60);

  //返回计算结果
  return {
    total,
    days,
    hours,
    minutes,
    seconds
  };
}

function initializeClock(id, endtime){
  const clock = document.getElementById(id);
  const daysSpan = clock.querySelector('.days');
  const hoursSpan = clock.querySelector('.hours');
  const minutesSpan = clock.querySelector('.minutes');
  const secondsSpan = clock.querySelector('.seconds');

  function updateClock(){
    const t = getTimeRemaining(endtime);

    //将计算出来的时间更新到倒计时元素中
    daysSpan.innerHTML = t.days;
    hoursSpan.innerHTML = ('0' + t.hours).slice(-2);
    minutesSpan.innerHTML = ('0' + t.minutes).slice(-2);
    secondsSpan.innerHTML = ('0' + t.seconds).slice(-2);

    //判断倒计时是否结束,如果结束则清除计时器
    if (t.total <= 0) {
      clearInterval(timeinterval);
    }
  }

  //先执行一次更新,然后每隔1秒更新一次计时器
  updateClock();
  const timeinterval = setInterval(updateClock, 1000);
}

//通过初始化函数启动计时器并设置id和截止时间
initializeClock('timer', deadline);

这段代码可以实现一个简单的倒计时,每隔一秒自动更新,当倒计时结束时就会停止计时器,并在倒计时元素中显示“0:0:0”。

示例说明

按照上述代码实现后,可以在网页上看到如下倒计时效果:

倒计时示例

2. 使用setTimeout函数

原理

setTimeout函数与setInterval函数有些类似,都可以用来执行一段代码。不同的是,setTimeout函数只执行一次代码,并且需要设置一个时间参数告诉代码过多少时间后执行。

实现方法

与上述代码类似,需要在html代码中定义一个显示倒计时的元素,例如:

<p id="timer2">倒计时2:00:00:00</p>

然后在js代码中使用setTimeout函数执行倒计时:

const deadline2 = new Date("May 30, 2022 10:00:00").getTime();

function countdown() {
  const now = new Date().getTime();
  const distance = deadline2 - now;

  if (distance < 0) {
    clearInterval(timeinterval2);
    document.getElementById("timer2").innerHTML = "EXPIRED";
    return;
  }

  const days = Math.floor(distance / (1000 * 60 * 60 * 24));
  const hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  const minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
  const seconds = Math.floor((distance % (1000 * 60)) / 1000);

  document.getElementById("timer2").innerHTML = days + "d " + hours + "h "
  + minutes + "m " + seconds + "s ";
}

const timeinterval2 = setInterval(countdown, 1000);

代码使用了一个countdown函数计算剩余时间并更新到倒计时元素中。在倒计时元素中当时间到0后,会显示“EXPIRED”。

示例说明

按照上述代码实现后,可以在网页上看到如下倒计时效果:

倒计时示例2

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:2种简单的js倒计时方式 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • JS Excel读取和写入操作(模板操作)实现代码

    关于“JS Excel读取和写入操作(模板操作)实现代码”的完整攻略,我会从以下几个方面进行讲解: Excel文件格式介绍 Excel文件读取操作的实现 Excel文件写入操作的实现 模板操作的实现 1. Excel文件格式介绍 Excel文件是一种二进制格式的文件,后缀名为.xlsx,.xls等。针对Excel文件进行读取和写入操作需要使用一些特殊的库和工…

    JavaScript 2023年5月27日
    00
  • 纯Javascript实现ping功能的方法

    实现 “Ping” 功能,即测试主机之间的可靠性和延迟,可以使用 JavaScript 中的 XMLHttpRequest 对象来实现。 步骤1:创建 XMLHttpRequest 对象 var xhr = new XMLHttpRequest(); 步骤2:绑定事件处理程序 因为 XMLHttpRequest 对象基于异步操作,所以我们需要将其用于“pin…

    JavaScript 2023年5月28日
    00
  • JavaScript交换变量的常用方法小结【4种方法】

    当你需要交换两个变量时,有多种方法可以实现。在 JavaScript 中,我们可以使用以下四种常用方法来交换两个变量: 使用第三个变量 使用加减法 使用异或运算 使用 ES6 的解构赋值 下面我们将详细解释每种方法并附上示例。 方法1:使用第三个变量 使用第三个临时变量来存储其中一个变量的值,然后将另一个变量的值赋值给第一个变量,最后将第三个变量的值赋值给第…

    JavaScript 2023年5月19日
    00
  • js获取上传文件大小示例代码

    当用户需要在网站上上传文件时,我们可能需要进行文件大小的限制。JavaScript可以通过文件对象(File对象)来获取上传文件的大小。 具体步骤如下: 获取文件对象 首先,在HTML表单中添加一个文件输入框,使用JavaScript获取该输入框对应的文件对象。例如: <input type="file" id="file…

    JavaScript 2023年5月27日
    00
  • javascript实现全角转半角的方法

    javascript可以通过正则表达式实现全角转半角。具体实现步骤如下: Step 1: 获取文本 首先,我们需要获取需要转换的文本,可以通过 getElementById() 等方法获取到HTML中的文本。 const originText = document.getElementById(‘text’).innerHTML; Step 2: 利用正则表…

    JavaScript 2023年5月19日
    00
  • JS匹配日期和时间的正则表达式示例

    当需要从文本中匹配日期和时间信息时,可以使用正则表达式来准确地实现。下面是关于“JS匹配日期和时间的正则表达式示例”的完整攻略。 1. 正则表达式基础知识 在进行日期和时间信息的正则匹配时,需要掌握一些基础知识。 字符集:用于匹配多个字符中的任意一个字符,用方括号([])来表示。如[abc]匹配字符a、b或c中的任意一个字符。 重复次数:用于匹配前面一个字符…

    JavaScript 2023年5月27日
    00
  • js Math 对象的方法

    当我们要对数字进行一些复杂的操作或计算时,js语言内置的 Math 对象是不可或缺的一个工具。Math 对象提供了很多有用的方法来处理数字。 常用方法 Math.abs() Math.abs() 方法用于返回给定数字的绝对值,即该数字距离 0 的距离,无论正负。 Math.abs(-5); // 返回 5 Math.abs(5); // 返回 5 Math.…

    JavaScript 2023年5月28日
    00
  • JavaScript中常用的运算符小结

    JavaScript中常用的运算符小结 前言 在JavaScript的世界里,运算符无疑是最常用到的知识点之一。掌握运算符,可以让我们更加高效地完成任务。这篇文章将会概述JavaScript中常用的运算符,包括算术运算符、比较运算符、逻辑运算符和位运算符。 算术运算符 算术运算符主要用于数值运算,常见的算术运算符有加(+)、减(-)、乘(*)、除(/)和取模…

    JavaScript 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部