基于JS代码实现简单易用的倒计时 x 天 x 时 x 分 x 秒效果

yizhihongxing

实现倒计时的方式有很多种,下面我将详细讲解一种基于JavaScript代码实现简单易用的倒计时效果的攻略。

步骤一:HTML结构

首先,我们需要在HTML中构建出需要展示倒计时的元素,我们可以使用两个div元素,其中一个用来显示时分秒,另一个用来显示天数。

以下是示例代码:

<div id="countdown">
  <div id="countdown-days"></div>
  <div id="countdown-time"></div>
</div>

步骤二:CSS样式

接下来需要为倒计时元素设置样式,如宽度、高度、背景颜色、字体大小等。

以下是示例代码:

#countdown {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 60px;
  background-color: #ccc;
  font-size: 24px;
  font-weight: bold;
}

#countdown-days {
  margin-right: 10px;
  padding: 5px 10px;
  background-color: #555;
  color: #fff;
}

#countdown-time {
  padding: 5px 10px;
  background-color: #444;
  color: #fff;
}

步骤三:JavaScript代码

接下来是最重要的部分,通过JavaScript代码实现倒计时效果。首先,我们需要获取倒计时结束的日期时间,然后计算出与当前时间的时间差,最后以天、时、分、秒的形式展示出来。

以下是示例代码:

//设置倒计时结束的日期时间
const countdownDate = new Date("2022-01-01 00:00:00").getTime();

//每秒更新一次倒计时
const interval = setInterval(() => {
  //获取当前时间
  const now = new Date().getTime();

  //计算与结束时间的时间差
  const diff = countdownDate - now;

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

  //更新倒计时元素内容
  document.getElementById("countdown-days").innerHTML = `${days} 天`;
  document.getElementById("countdown-time").innerHTML = `${hours} 时 ${minutes} 分 ${seconds} 秒`;

  //倒计时结束时清除定时器
  if (diff <= 0) {
    clearInterval(interval);
  }
}, 1000);

步骤四:完整代码

以下是完整的HTML、CSS、JavaScript代码示例:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>倒计时示例</title>
    <style>
      #countdown {
        display: flex;
        justify-content: center;
        align-items: center;
        height: 60px;
        background-color: #ccc;
        font-size: 24px;
        font-weight: bold;
      }

      #countdown-days {
        margin-right: 10px;
        padding: 5px 10px;
        background-color: #555;
        color: #fff;
      }

      #countdown-time {
        padding: 5px 10px;
        background-color: #444;
        color: #fff;
      }
    </style>
  </head>
  <body>
    <div id="countdown">
      <div id="countdown-days"></div>
      <div id="countdown-time"></div>
    </div>

    <script>
      //设置倒计时结束的日期时间
      const countdownDate = new Date("2022-01-01 00:00:00").getTime();

      //每秒更新一次倒计时
      const interval = setInterval(() => {
        //获取当前时间
        const now = new Date().getTime();

        //计算与结束时间的时间差
        const diff = countdownDate - now;

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

        //更新倒计时元素内容
        document.getElementById("countdown-days").innerHTML = `${days} 天`;
        document.getElementById("countdown-time").innerHTML = `${hours} 时 ${minutes} 分 ${seconds} 秒`;

        //倒计时结束时清除定时器
        if (diff <= 0) {
          clearInterval(interval);
        }
      }, 1000);
    </script>
  </body>
</html>

示例说明

示例一:

假设我们现在需要倒计时到2022年1月1日,并将倒计时以天、时、分、秒的形式展示出来。我们可以在HTML中构建以下结构:

<div id="countdown">
  <div id="countdown-days"></div>
  <div id="countdown-time"></div>
</div>

然后在JavaScript代码中设置倒计时结束的日期时间,并以每秒更新一次的方式计算与当前时间的时间差,最后以天、时、分、秒的形式更新倒计时元素内容。

完整代码如下:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>倒计时示例</title>
    <style>
      #countdown {
        display: flex;
        justify-content: center;
        align-items: center;
        height: 60px;
        background-color: #ccc;
        font-size: 24px;
        font-weight: bold;
      }

      #countdown-days {
        margin-right: 10px;
        padding: 5px 10px;
        background-color: #555;
        color: #fff;
      }

      #countdown-time {
        padding: 5px 10px;
        background-color: #444;
        color: #fff;
      }
    </style>
  </head>
  <body>
    <div id="countdown">
      <div id="countdown-days"></div>
      <div id="countdown-time"></div>
    </div>

    <script>
      //设置倒计时结束的日期时间
      const countdownDate = new Date("2022-01-01 00:00:00").getTime();

      //每秒更新一次倒计时
      const interval = setInterval(() => {
        //获取当前时间
        const now = new Date().getTime();

        //计算与结束时间的时间差
        const diff = countdownDate - now;

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

        //更新倒计时元素内容
        document.getElementById("countdown-days").innerHTML = `${days} 天`;
        document.getElementById("countdown-time").innerHTML = `${hours} 时 ${minutes} 分 ${seconds} 秒`;

        //倒计时结束时清除定时器
        if (diff <= 0) {
          clearInterval(interval);
        }
      }, 1000);
    </script>
  </body>
</html>

示例二:

假设我们现在需要倒计时10分钟,并将倒计时以秒的形式展示出来。我们可以在HTML中构建以下结构:

<div id="countdown"></div>

然后在JavaScript代码中设置倒计时结束的日期时间,并以每秒更新一次的方式计算与当前时间的时间差,最后以秒的形式更新倒计时元素内容。

完整代码如下:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>倒计时示例</title>
    <style>
      #countdown {
        height: 60px;
        font-size: 24px;
        font-weight: bold;
      }
    </style>
  </head>
  <body>
    <div id="countdown"></div>

    <script>
      //设置倒计时结束的日期时间
      const countdownDate = new Date().getTime() + 10 * 60 * 1000;

      //每秒更新一次倒计时
      const interval = setInterval(() => {
        //获取当前时间
        const now = new Date().getTime();

        //计算与结束时间的时间差
        const diff = countdownDate - now;

        //计算剩余秒数
        const seconds = Math.floor(diff / 1000);

        //更新倒计时元素内容
        document.getElementById("countdown").innerHTML = `${seconds} 秒`;

        //倒计时结束时清除定时器
        if (diff <= 0) {
          clearInterval(interval);
        }
      }, 1000);
    </script>
  </body>
</html>

以上就是实现倒计时的完整攻略,总体来说,实现倒计时效果需要HTML、CSS、JavaScript三部分代码配合完成。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于JS代码实现简单易用的倒计时 x 天 x 时 x 分 x 秒效果 - Python技术站

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

相关文章

  • web项目开发之JS函数防抖与节流示例代码

    下面来详细讲解“web项目开发之JS函数防抖与节流示例代码”的完整攻略。 什么是函数防抖和节流 在理解函数防抖和节流之前,先来看一下JS中的函数执行机制。当你在页面中注册了一个事件处理函数后,当相应事件被触发时会不断地调用该函数。然而,有时候你可能会希望函数的执行可以控制到你期望的频率或时间间隔以内,这时就需要用到函数防抖和函数节流。 函数防抖的目的是为了避…

    JavaScript 2023年6月11日
    00
  • javascript json字符串到json对象转义问题

    接下来我将为您详细讲解“JavaScript JSON字符串到JSON对象转义问题”的完整攻略。 背景 在JavaScript开发中,我们通常需要对JSON字符串进行解析,将其转换为JavaScript对象。JSON字符串是一种轻量级的数据格式,在不同的场景中被广泛使用。但是在实际开发中,我们可能会遇到JSON字符串中的特殊字符不能够被正确解析的情况,这时候…

    JavaScript 2023年5月27日
    00
  • javascript正则表达式标记中/g /i /m的用法,以及实例

    下面是JavaScript正则表达式标记中/g /i /m的用法以及示例: 1. /g标记 /g标记表示全局匹配,表示正则表达式将会对文本中所有的匹配项进行匹配。如果不加/g标记,只会返回第一个匹配结果。 示例: const str = "hello, world! hello, JavaScript!"; const regex = /…

    JavaScript 2023年6月10日
    00
  • JS document文档的简单操作完整示例

    JS document 文档是操作网页元素的核心接口。它可以通过 js 代码来获取、修改和新增 HTML 元素,以实现网页动态变化。接下来将通过两个示例介绍基本的 JS document 操作。 示例1:获取元素 在 HTML 文档中,标签是最基本的元素,通过 JS document 可以获取 HTML 中指定标签的元素。获取标签元素需要使用 getElem…

    JavaScript 2023年6月10日
    00
  • Vue3 Element Plus el-form表单组件示例详解

    下面是“Vue3 Element Plus el-form表单组件示例详解”的完整攻略: 1. 简介 Vue3 Element Plus是一套基于Vue 3和Element Plus组件库的前端解决方案。它提供了丰富的UI组件和工具,用于开发高质量的Web应用程序。 其中,el-form表单组件是Element Plus中的一个常用组件之一,用于收集和验证用…

    JavaScript 2023年6月10日
    00
  • 如何在wxml中直接写js代码(wxs)

    下面是如何在wxml中直接写js代码(wxs)的攻略: 编写wxs文件 首先需要编写wxs文件,在wxs文件中可以编写js代码。在wxml中可以通过< wxs >标签引入wxs文件,引入后可以直接使用wxs中的变量或函数。 示例代码如下: // test.wxs module.exports.add = function (a, b) { ret…

    JavaScript 2023年6月11日
    00
  • Javascript 计算字符串在localStorage中所占字节数

    要计算字符串在localStorage中所占字节数,需要先了解以下几个概念: 字符串长度:字符串中字符的个数。 字符编码:字符在计算机中的储存方式。常见的有ascii码、unicode、utf-8等。 字节:计算机中数据的存储单位。 在localStorage中储存字符串时,它实质上是以字节的形式储存的。因此,计算字符串在localStorage中所占字节数…

    JavaScript 2023年5月28日
    00
  • JS中BOM相关知识点总结(必看篇)

    那我来给您讲解一下。 JS中BOM相关知识点总结(必看篇) BOM是浏览器对象模型(Browser Object Model)的缩写,是JavaScript与浏览器之间的交互接口,通过它可以获取和操作浏览器的窗口、框架、历史记录等信息。下面是JS中BOM的相关知识点总结: 1. window对象 window对象是指浏览器打开的窗口,它是BOM中的顶层对象。…

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