JavaScript实现前端倒计时效果

yizhihongxing

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中关于iframe滚动条的去除和保留

    当一个页面被嵌入到 another 页面的 iframe 内时,可能会出现 iframe 内有一个滚动条,所以在某些情况下,你可能需要去除此滚动条。 去除iframe内的滚动条 通过在 iframe 中添加 scrolling=”no” 属性可以禁用滚动条: <iframe src="example.html" scrolling=…

    JavaScript 2023年6月11日
    00
  • js电话号码验证方法

    请跟我一起学习“js电话号码验证方法”的完整攻略。 一、需求分析 如果你在网站或应用中需要让用户输入手机号码,那么你就需要对输入的电话号码进行验证。电话号码的规则不同于其他类型的输入,因此需要特殊的验证方法。我们希望可以检验用户输入的电话号码是否符合规范,且可以在用户输入的时候实时进行验证。 二、实现方法 下面是一个简单的js电话号码验证方法 functio…

    JavaScript 2023年6月10日
    00
  • 特殊日期提示功能的实现方法

    实现特殊日期提示功能的方法有很多种,但是在网站开发中,常用的方法主要有以下两种: 1. 使用 JavaScript 和 CSS 实现 步骤 在 HTML 中的 head 标签内引入 CSS 文件,用于设置日期提示框的样式; 在 body 标签内设置一个容器,用于存放日期提示框; 在 JavaScript 文件中实现以下逻辑: 获取当前日期,并根据需要将其转换…

    JavaScript 2023年6月10日
    00
  • JS中数组实现代码(倒序遍历数组,数组连接字符串)

    JS中数组实现代码——倒序遍历数组与数组连接字符串 在JavaScript中,数组是一种非常常用的数据类型。它可以用来存储多个数据,并且可以进行各种操作。本文将介绍如何通过JavaScript中的数组实现倒序遍历数组和数组连接字符串。 倒序遍历数组 倒序遍历数组就是按照数组中元素的倒序,依次对每个元素进行操作。在JavaScript中,我们可以使用for循环…

    JavaScript 2023年5月27日
    00
  • 利用JS实现AI自动玩贪吃蛇

    实现AI自动玩贪吃蛇的具体步骤一般包括以下几个部分: 1. 实现贪吃蛇游戏逻辑 首先,需要实现贪吃蛇游戏的基本逻辑,包括蛇的移动、食物生成、吃食物、增长等功能。这部分的代码实现方式可以参考一些贪吃蛇游戏的教程和示例代码,例如利用canvas绘制贪吃蛇游戏界面及游戏逻辑等。具体实现方法可以参考下面的示例: // 初始化贪吃蛇游戏界面 var canvas = …

    JavaScript 2023年6月10日
    00
  • jQuery animate()实现背景色渐变效果的处理方法【使用jQuery.color.js插件】

    下面详细讲解如何使用jQuery的animate()方法实现背景色渐变效果,需要使用jQuery.color.js插件。具体步骤如下: 1. 引入jQuery和jQuery.color.js插件 在HTML文件中,我们需要引入jQuery和jQuery.color.js插件。 <script src="https://code.jquery.…

    JavaScript 2023年6月11日
    00
  • JavaScript日期时间格式化函数分享

    标题:JavaScript日期时间格式化函数分享 JavaScript中提供了一些用于格式化日期时间的函数,下面我们将分步骤讲解如何使用这些函数。 步骤一:获取当前日期时间 const now = new Date(); 步骤二:使用toLocaleDateString()函数格式化日期 const date = now.toLocaleDateString…

    JavaScript 2023年5月27日
    00
  • JS时间戳转换方式示例详解

    JS时间戳转换方式示例详解 概述 时间戳(timestamp)是指为表示某一事件发生的时间而定义的一种以秒单位或者毫秒单位的数字。JS中常用的时间戳是指unix时间戳,即从1970年1月1日开始所经过的秒数。由于时间戳的数字比较难懂,因此我们需要进行转换后才能更好地使用。 本文将详细讲解JS中时间戳的转换方式,包括时间戳转日期、日期转时间戳、获取当前时间戳等…

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