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日

相关文章

  • js前端传json后台接收‘‘被转为quot的问题解决

    当前端使用 JavaScript 将 JSON 对象发送到后台时,有时可能会遇到 JSON 字符串中的双引号被转换为 &quot; 实体的问题,这可能会导致后端无法正确解析 JSON 字符串的情况。下面是解决这个问题的攻略: 1. 从前端开始 首先,确保前端代码正确地生成了 JSON 字符串,不应该使用任何 HTML 实体序列化。例如,以下代码可能会…

    JavaScript 2023年5月27日
    00
  • LazyLoad 延迟加载(按需加载)

    LazyLoad 延迟加载(按需加载)是一种在页面加载时,只加载当前视窗内所需要的部分内容,避免不必要的资源浪费和页面加载时间过长的现象。这种技术在网站中的应用非常常见。 实现方式 实现LazyLoad延迟加载的方式有多种,其中最常见的是使用JavaScript库。以下是一些常见的JavaScript库:- Layzr.js:轻量级、易扩展和可定制,可用于图…

    JavaScript 2023年6月11日
    00
  • javascript删除数组元素的七个方法示例

    JavaScript删除数组元素的七个方法示例 在JavaScript中,删除数组元素是经常会遇到的一个问题。本文将详细介绍七种不同的方法来删除JavaScript数组中的元素。 方法一:splice()方法 splice()方法是JavaScript中最通用的删除数组元素的方法。使用此方法可以从数组中删除任意数量的元素,通过指定要删除的元素的索引位置和要删…

    JavaScript 2023年5月27日
    00
  • 深入理解JavaScript函数参数(推荐)

    深入理解JavaScript函数参数(推荐) 在JavaScript中,函数参数是一个重要的概念,函数的可用性和实用性很大程度上依赖于参数。在本文中,我们将介绍JavaScript函数参数的各种方面,包括: 位置参数 默认参数 剩余参数 命名参数 参数解构 位置参数 位置参数是函数定义中的参数,它们的值由调用函数时传递的参数值确定。例如: function …

    JavaScript 2023年5月27日
    00
  • 原生JS实现的跳一跳小游戏完整实例

    作为网站的作者,我很乐意为大家提供原生JS实现的跳一跳小游戏的完整攻略。 简介 跳一跳是一款非常流行的手机游戏,它的玩法简单而又有趣。本攻略将介绍如何用原生JS实现一个跳一跳的小游戏,包括如何实现小人跳跃、生成随机方块、游戏分数计算等。 实现步骤 1. 初始化游戏画布 首先,我们需要在HTML页面中创建一个画布(canvas),并通过JS获取它的上下文(co…

    JavaScript 2023年5月28日
    00
  • 利用BootStrap的Carousel.js实现轮播图动画效果

    以下是“利用BootStrap的Carousel.js实现轮播图动画效果”的完整攻略。 步骤一:引入Bootstrap和JQuery库 <!– 引入Bootstrap样式 –> <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.…

    JavaScript 2023年6月11日
    00
  • JS定时器如何实现提交成功提示功能

    JS定时器可以通过setInterval()函数来实现提交成功提示功能。函数setInterval()可用于定时重复执行指定的代码段,其语法如下: setInterval(function, interval); 其中,function参数指定需要重复执行的代码段,interval参数指定执行函数的时间间隔,单位为毫秒。 下面是一个简单的示例代码,点击按钮后…

    JavaScript 2023年6月11日
    00
  • javascript下用ActiveXObject控件替换word书签,将内容导出到word后打印第2/2页

    需要注意的是,JavaScript使用ActiveXObject控件需要在IE浏览器环境下操作,而且需要注意安全性问题。 创建Word对象 使用ActiveXObject控件来操作Word,首先需要创建一个Word对象。可以通过以下代码来实现: var wordApp = new ActiveXObject("Word.Application&qu…

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