JavaScript实现前端倒计时效果

JavaScript实现前端倒计时效果是一种常见的网页交互形式,通常用于倒计时活动、秒杀活动等。

实现思路

  • 获取当前时间和目标时间
  • 计算剩余时间,并转换成时、分、秒
  • 动态更新页面显示剩余时间

具体实现

获取当前时间和目标时间

// 获取当前时间和目标时间
const now = new Date();
const target = new Date('2022-01-01 00:00:00');

计算剩余时间并转换

// 计算剩余时间并转换成时、分、秒
const diff = target.getTime() - now.getTime();
const hours = Math.floor(diff / (1000 * 60 * 60));
const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));
const seconds = Math.floor((diff % (1000 * 60)) / 1000);

动态更新页面

// 动态更新页面
const hourElement = document.querySelector('#hour');
const minuteElement = document.querySelector('#minute');
const secondElement = document.querySelector('#second');

hourElement.innerHTML = hours;
minuteElement.innerHTML = minutes;
secondElement.innerHTML = seconds;

setInterval(() => {
  const now = new Date();
  const diff = target.getTime() - now.getTime();
  const hours = Math.floor(diff / (1000 * 60 * 60));
  const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));
  const seconds = Math.floor((diff % (1000 * 60)) / 1000);

  hourElement.innerHTML = hours;
  minuteElement.innerHTML = minutes;
  secondElement.innerHTML = seconds;
}, 1000);

示例1

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>倒计时示例1</title>
  <style>
    span {
      padding: 5px;
      margin-right: 5px;
      background-color: #333;
      color: #fff;
      font-size: 24px;
    }
  </style>
</head>
<body>
  <div>距离2022年元旦还有</div>
  <div>
    <span id="hour"></span>时
    <span id="minute"></span>分
    <span id="second"></span>秒
  </div>

  <script>
    const now = new Date();
    const target = new Date('2022-01-01 00:00:00');

    const diff = target.getTime() - now.getTime();
    const hours = Math.floor(diff / (1000 * 60 * 60));
    const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));
    const seconds = Math.floor((diff % (1000 * 60)) / 1000);

    const hourElement = document.querySelector('#hour');
    const minuteElement = document.querySelector('#minute');
    const secondElement = document.querySelector('#second');

    hourElement.innerHTML = hours;
    minuteElement.innerHTML = minutes;
    secondElement.innerHTML = seconds;

    setInterval(() => {
      const now = new Date();
      const diff = target.getTime() - now.getTime();
      const hours = Math.floor(diff / (1000 * 60 * 60));
      const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));
      const seconds = Math.floor((diff % (1000 * 60)) / 1000);

      hourElement.innerHTML = hours;
      minuteElement.innerHTML = minutes;
      secondElement.innerHTML = seconds;
    }, 1000);
  </script>
</body>
</html>

示例2

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>倒计时示例2</title>
  <style>
    span {
      display: inline-block;
      width: 100px;
      height: 100px;
      margin-right: 10px;
      background-color: #ccc;
      font-size: 36px;
      text-align: center;
      line-height: 100px;
    }
  </style>
</head>
<body>
  <div>
    <span id="hour"></span>
    <span id="minute"></span>
    <span id="second"></span>
  </div>

  <script>
    const now = new Date();
    const target = new Date('2022-01-01 00:00:00');

    const diff = target.getTime() - now.getTime();
    const hours = Math.floor(diff / (1000 * 60 * 60));
    const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));
    const seconds = Math.floor((diff % (1000 * 60)) / 1000);

    const hourElement = document.querySelector('#hour');
    const minuteElement = document.querySelector('#minute');
    const secondElement = document.querySelector('#second');

    hourElement.innerHTML = ('0' + hours).slice(-2) + ':';
    minuteElement.innerHTML = ('0' + minutes).slice(-2) + ':';
    secondElement.innerHTML = ('0' + seconds).slice(-2);

    setInterval(() => {
      const now = new Date();
      const diff = target.getTime() - now.getTime();
      const hours = Math.floor(diff / (1000 * 60 * 60));
      const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));
      const seconds = Math.floor((diff % (1000 * 60)) / 1000);

      hourElement.innerHTML = ('0' + hours).slice(-2) + ':';
      minuteElement.innerHTML = ('0' + minutes).slice(-2) + ':';
      secondElement.innerHTML = ('0' + seconds).slice(-2);
    }, 1000);
  </script>
</body>
</html>

以上就是“JavaScript实现前端倒计时效果”的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript实现前端倒计时效果 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • javascript模拟C#格式化字符串

    接下来我将为你讲解javascript模拟C#格式化字符串的攻略。 首先,我们需要了解C#格式化字符串的语法,它使用了一种特殊的符号来实现占位符的替换。在C#中,占位符由一对花括号 {} 构成,占位符中可以指定参数的索引,以及可选的格式化选项。具体语法如下: string.Format("{0}的年龄是{1}岁。", name, age)…

    JavaScript 2023年5月28日
    00
  • 一种新的日期处理方式之JavaScript Temporal API

    一、JavaScript Temporal API简介 JavaScript Temporal API是一个新的JavaScript API,它提供了一种新的日期和时间处理方式,用于简化处理日期、时间和时间间隔的操作。它的设计目标是提供一个简单易用的API,能够处理所有的日期和时间操作,包括处理时区、分别取年月日等操作。 二、安装JavaScript Tem…

    JavaScript 2023年6月10日
    00
  • js定义类的几种方法(推荐)

    JS定义类的几种方法是现代JS开发中必须了解的内容。这里我们将讲解4种主要的定义类的方法,并且推荐其中的2种。 1. 原型链方式 原型链方式是JS类的基础知识,也是最古老的一种JS定义类的方式。它通过创建一个构造函数和相应的原型链对象来实现类的定义和实例化。以下是一个简单的示例: function Person(name, age) { this.name …

    JavaScript 2023年5月27日
    00
  • JS实现多物体运动的方法详解

    JS实现多物体运动的方法详解 在Web开发中,常常需要实现多个物体同时进行运动的效果,这时我们可以使用JavaScript来控制多个DOM元素的运动。本文将详细讲解JS实现多物体运动的方法。 步骤一:获取多个DOM元素的初始状态 在程序开始运行之前,我们需要获取多个DOM元素的初始状态,这些状态包括元素的初始位置、大小、颜色等信息。在JavaScript中可…

    JavaScript 2023年6月11日
    00
  • JavaScript面向对象中接口实现方法详解

    JavaScript面向对象中接口实现方法详解 在JavaScript面向对象编程中,我们常常需要定义接口(interface)来规定类(class)必须实现的方法。在本篇攻略中,我们将详细讲解如何实现JavaScript中的接口。 什么是接口? 在编程中,接口是一种规范或者约束,它定义了类或者对象应该实现的方法或者属性。接口规定了类或者对象必须实现的一组方…

    JavaScript 2023年5月27日
    00
  • 谈谈JavaScript中的垃圾回收机制

    当浏览器执行JavaScript代码时,浏览器会在内存中分配空间来存储变量、函数、对象等数据。由于JavaScript是一种动态类型的语言,因此变量类型和值的大小在运行时是不确定的,这就需要在内存中动态分配和释放空间。为了确保内存得到充分的利用,在一些不再使用的数据处理完后,我们需要将其从内存中释放掉。这就是JavaScript中的垃圾回收机制。 垃圾回收算…

    JavaScript 2023年6月10日
    00
  • Vue之mixin全局的用法详解

    Vue之mixin全局的用法详解 1. 概述 Vue中的mixin(混入)机制可以让组件之间的代码可以进行复用,即在多组件中共用同一段代码,而不用把这段代码写在多个组件里。这对于代码复用、减少冗余代码是一个非常好的解决方案。mixin可以理解为是一种能够让我们将组件的一部分功能提取出来,并进行重复利用的机制。 2. 语法 下面是mixin的语法: var m…

    JavaScript 2023年6月11日
    00
  • JavaScript定义全局对象的方法示例

    我们来讲解一下“JavaScript定义全局对象的方法示例”的完整攻略。 定义全局对象的方法 在JavaScript中定义一个全局对象需要遵循以下步骤: 创建一个对象 使用JavaScript的内置构造函数Object()方法或者字面量的方式来创建一个对象: var myObject = new Object(); 或者: var myObject = {}…

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