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日

相关文章

  • 小米推送Java代码

    下面是详细讲解“小米推送Java代码”的完整攻略,包含了以下内容: 背景介绍 准备工作 推送API调用流程 示例说明 背景介绍 小米推送是小米开发团队提供的一项推送服务,它可以让开发者在应用内通过各种方式向用户推送通知、消息等。小米推送支持Android和iOS两个平台,各种消息类型的推送都可以通过API接口实现。 本文主要介绍如何在Java应用程序中使用小…

    JavaScript 2023年6月11日
    00
  • js流动式效果显示当前系统时间

    实现JS流动式效果显示当前系统时间,可以通过以下步骤实现: 第一步:获取当前时间 JavaScript中可以通过Date()对象获取当前的系统时间。 var now = new Date(); var hour = now.getHours(); //小时 var minute = now.getMinutes(); //分钟 var second = no…

    JavaScript 2023年5月27日
    00
  • 一个不错的可以检测多中浏览器的函数和其它功能第2/2页

    函数概述 这是一个可以检测多种浏览器的 JavaScript 函数,它可以帮助你判断当前的浏览器类型和版本号,并且还可以检测浏览器是否支持某些功能。这个函数定义比较长,但是使用起来非常方便。下面是这个函数的代码: function detectBrowser() { var ua = navigator.userAgent; var browserName;…

    JavaScript 2023年6月11日
    00
  • safari,opera嵌入iframe页面cookie读取问题解决方法

    使用 iframe 嵌入页面时,不同浏览器对 cookie 的处理方式有所不同,其中 Safari 和 Opera 会有 cookie 跨域问题,但这个问题可以通过添加响应的 HTTP 头来解决。 具体的解决方案如下: 方法一:设置相同的域名 将外层页面和嵌入的 iframe 页面设置相同的域名,这样就算是跨域请求,浏览器也会将 cookie 存储到相同的域…

    JavaScript 2023年6月11日
    00
  • jquery实现简单的表单验证

    下面是jQuery实现简单的表单验证的完整攻略: 1. 导入jQuery库文件 要使用jQuery,首先需要在页面头部导入jQuery库文件,可以从官网下载或直接使用CDN加速链接。示例: <head> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jque…

    JavaScript 2023年6月10日
    00
  • 前端设计模式——MVC模式

    MVC模式(Model-View-Controller):是一种前端和后端都广泛应用的设计模式。它将应用程序的业务逻辑、数据表示和用户界面分离,使得开发人员可以独立地修改各部分而不影响其他部分。MVC设计模式有助于提高代码的可读性、可维护性和可重用性。 MVC是Model-View-Controller的缩写,它将一个应用程序分为三个部分: 1. Model…

    JavaScript 2023年4月18日
    00
  • JavaScript parseInt0.0000005打印5原理解析

    JavaScript的parseInt函数用来将一个字符串转换成一个整数。 在JavaScript中,当parseInt接收的参数是字符串时,它会从字符串的开头开始遍历,直到遇见第一个不合法的字符为止,并截取这个字符之前的所有数字字符。如果字符串中不包含数字字符,则返回NaN。parseInt也可以接收第二个参数(radix),表示使用的进制数,如2表示二进…

    JavaScript 2023年5月28日
    00
  • jQuery用FormData实现文件上传的方法

    下面我会给你详细介绍使用jQuery的FormData实现文件上传的过程和代码示例。 FormData简介 FormData 是一种支持 AJAX 文件上传的技术。当使用 FormData 对象来上传文件时,文件内容被读取为二进制数据,直接发送到服务器,可实现多文件上传。 使用 FormData 对象能够更轻松地将表单数据发送给服务器,不需要自己构建数据包,…

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