JS实现倒计时(天数、时、分、秒)

JS实现倒计时是一种常见的前端实现方式,在各类网站和应用中均有广泛应用。下面是JS实现倒计时的完整攻略:

步骤一:准备页面结构

首先需要在HTML页面中准备好倒计时所需的HTML结构,包括倒计时DOM元素的容器,每个倒计时数字占据的DOM元素等。

例如,下面是一个简单的倒计时页面结构示例:

<div class="countdown-wrapper">
  <div class="countdown-item">
    <span class="countdown-item__number days"></span>
    <span class="countdown-item__text">Days</span>
  </div>
  <div class="countdown-item">
    <span class="countdown-item__number hours"></span>
    <span class="countdown-item__text">Hours</span>
  </div>
  <div class="countdown-item">
    <span class="countdown-item__number minutes"></span>
    <span class="countdown-item__text">Minutes</span>
  </div>
  <div class="countdown-item">
    <span class="countdown-item__number seconds"></span>
    <span class="countdown-item__text">Seconds</span>
  </div>
</div>

步骤二:编写JS代码

接下来需要编写JS代码实现倒计时的功能。具体实现方式如下:

  1. 倒计时定时器

首先需要通过JS代码设置一个定时器,在每一秒钟的时间间隔中更新倒计时数字的显示。

例如,下面是一个简单的倒计时定时器:

function countdown() {
  const targetDate = new Date('2022-01-01T00:00:00Z');
  const now = new Date();

  const timeDiff = targetDate - now;
  const days = Math.floor(timeDiff / 1000 / 60 / 60 / 24);
  const hours = Math.floor(timeDiff / 1000 / 60 / 60 % 24);
  const minutes = Math.floor(timeDiff / 1000 / 60 % 60);
  const seconds = Math.floor(timeDiff / 1000 % 60);

  document.querySelector('.days').innerHTML = days;
  document.querySelector('.hours').innerHTML = hours;
  document.querySelector('.minutes').innerHTML = minutes;
  document.querySelector('.seconds').innerHTML = seconds;
}

setInterval(countdown, 1000);
  1. 数字补零

为了使倒计时数字显示更加美观,通常需要对数字进行补零操作。例如,在小时数或分钟数为1位数时,需要在左侧补0,使其显示为2位数字。

例如,下面是一个补零函数的示例:

function addLeadingZero(num) {
  return num < 10 ? '0' + num : num;
}

在倒计时代码中,可以使用该函数对小时数和分钟数进行补零操作。

步骤三:添加CSS样式

最后需要添加CSS样式,美化倒计时的显示效果。

例如,下面是一个简单的倒计时CSS样式:

.countdown-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 4rem;
  margin-top: 50px;
}

.countdown-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0 10px;
}

.countdown-item__number {
  font-family: monospace;
  font-size: 5rem;
  color: #222;
}

.countdown-item__text {
  font-size: 1.2rem;
  color: #777;
  text-transform: uppercase;
}

示例说明

下面是两个简单的示例说明:

示例一:倒计时到某一具体日期

例如,计算距离某一具体日期的倒计时:

function countdown() {
  const targetDate = new Date('2022-01-01T00:00:00Z');
  const now = new Date();

  const timeDiff = targetDate - now;
  const days = Math.floor(timeDiff / 1000 / 60 / 60 / 24);
  const hours = Math.floor(timeDiff / 1000 / 60 / 60 % 24);
  const minutes = Math.floor(timeDiff / 1000 / 60 % 60);
  const seconds = Math.floor(timeDiff / 1000 % 60);

  document.querySelector('.days').innerHTML = days;
  document.querySelector('.hours').innerHTML = addLeadingZero(hours);
  document.querySelector('.minutes').innerHTML = addLeadingZero(minutes);
  document.querySelector('.seconds').innerHTML = addLeadingZero(seconds);
}

setInterval(countdown, 1000);

该示例中,倒计时终点时间为2022年1月1日。每1秒钟更新一次倒计时显示。

示例二:倒计时剩余时间

例如,计算今天剩余时间的倒计时:

function countdown() {
  const now = new Date();
  const endOfDay = new Date(now);
  endOfDay.setHours(24, 0, 0, 0);

  const timeDiff = endOfDay - now;
  const hours = Math.floor(timeDiff / 1000 / 60 / 60 % 24);
  const minutes = Math.floor(timeDiff / 1000 / 60 % 60);
  const seconds = Math.floor(timeDiff / 1000 % 60);

  document.querySelector('.hours').innerHTML = addLeadingZero(hours);
  document.querySelector('.minutes').innerHTML = addLeadingZero(minutes);
  document.querySelector('.seconds').innerHTML = addLeadingZero(seconds);
}

setInterval(countdown, 1000);

该示例中,倒计时终点时间为今晚24点。每1秒钟更新一次倒计时显示。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS实现倒计时(天数、时、分、秒) - Python技术站

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

相关文章

  • javascript window.onerror事件学习新收获

    JavaScript Window.onerror事件学习新收获 什么是window.onerror事件? window.onerror 事件是在浏览器捕获到一个未处理的 JavaScript 错误时触发的事件。可以用来监听页面 JS 错误,并进行相应的处理,如记录错误信息、提示错误、上报错误等。 如何使用window.onerror事件? 在页面中添加以下…

    JavaScript 2023年5月28日
    00
  • JavaScript通过使用onerror设置默认图像显示代替alt

    什么是onerror? onerror 是一个事件处理器,它可以触发当一个图像载入失败时。 如何使用onerror显示默认图像? 使用 onerror 处理器,我们可以设置默认图像来代替那些引起 onerror 事件的图像。示例代码如下: <img src="image.png" alt="Some text" …

    JavaScript 2023年5月28日
    00
  • jquery.form.js实现将form提交转为ajax方式提交的方法

    jquery.form.js是jquery的一个插件,允许我们将表单的提交方式从默认的同步方式改为异步的Ajax方式。这本身就是一个非常棒的功能,它能够帮助我们更加方便地提交表单,避免了页面刷新的情况。下面就是使用jquery.form.js实现将form提交转为ajax方式提交的完整攻略。 步骤一:导入jquery.form.js 首先,我们需要在应用程序…

    JavaScript 2023年6月10日
    00
  • JS面向对象编程实现的拖拽功能案例详解

    JS面向对象编程实现的拖拽功能案例,可以分为以下几个步骤: 1. 确定目标 首先要明确要实现的功能,即拖拽功能,定义需要拖拽的元素和拖拽的位置。 示例代码: let box = document.querySelector(‘.box’); // 需要拖拽的元素 let mouseX = 0; // 鼠标在x轴上的位置 let mouseY = 0; // …

    JavaScript 2023年5月28日
    00
  • python算的上脚本语言吗

    Python通常被归类为一种脚本语言,因为它通常用于编写简单的脚本来完成较小的任务,如自动化一些常见的操作。下面是详细的讲解和两个示例说明: Python是脚本语言吗 Python被称为一种脚本语言,因为它通常被用于编写脚本,这些脚本可以快速完成一些任务,如系统管理、文件处理、数据分析、Web开发和自动化测试等。 此外,Python的语法简单,并且使用方便,…

    JavaScript 2023年5月28日
    00
  • JavaScript中的Proxy对象

    一、什么是Proxy对象 在JavaScript中,我们可以使用Proxy对象来代理某个对象,从而拦截对该对象的一些操作,例如读取属性、设置属性、函数调用等,以实现更加灵活的编程。 Proxy对象是ES6中新增的一个功能,它实现了一个代理器,可以通过这个代理器来拦截和修改对目标对象的操作。 例如,可以通过Proxy代理某个对象,在读取该对象属性时自动加上一个…

    JavaScript 2023年5月27日
    00
  • JavaScript实现的前端AES加密解密功能【基于CryptoJS】

    标题: JavaScript实现的前端AES加密解密功能【基于CryptoJS】 正文: JavaScript实现的前端AES加密解密功能主要解决的问题是数据在前端页面上进行加密和传输,保证数据的安全性。基于CryptoJS实现前端AES加密解密功能的攻略如下: 1. 引入CryptoJS库 在HTML文件中引入CryptoJS库文件,可以通过CDN方式引入…

    JavaScript 2023年5月20日
    00
  • 页面间固定参数,通过cookie传值的实现方法

    实现页面间固定参数的传递,可以借助Cookie来实现。Cookie是一种在客户端保存数据的机制。在使用Cookie的过程中,客户端与服务器之间都会传输Cookie的值,这就使得在页面加载完成之后,Cookie中的值可以通过JavaScript等方式进行读取。 以下是实现方法: 1.页面A设置Cookie储存需要传递的参数 // 设置Cookie docume…

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