一个不错的js html页面倒计时可精确到秒

下面是“一个不错的JS HTML页面倒计时可精确到秒”的完整攻略。

1.准备工作

首先,要获取当前时间和未来的结束时间,并计算出两者之间的时间间隔。为了完成这个任务,我们需要使用JavaScript中的Date对象。

// 获取当前时间
var now = new Date();
// 获取未来结束时间
var end = new Date('2021/12/31 23:59:59');
// 计算间隔时间
var leftTime = end.getTime() - now.getTime();

上面的代码中,我们使用了new Date()来获取当前时间和未来的结束时间,getTime()用来计算时间戳差值,得到两者之间的时间间隔。

2.计算时间差

接下来,我们需要将时间间隔转换成日、小时、分钟和秒。使用下面的代码可以实现:

// 获取各个时间单位的值
var days = parseInt(leftTime / 1000 / 60 / 60 / 24);
var hours = parseInt(leftTime / 1000 / 60 / 60 % 24);
var minutes = parseInt(leftTime / 1000 / 60 % 60);
var seconds = parseInt(leftTime / 1000 % 60);

上面的代码中,我们使用parseInt()函数将时间间隔转换成整数,然后根据时间间隔计算出相应的时间单位的值。比如hours变量得出的值是距离结束时间还有多少小时。

3.更新倒计时

最后一步是将倒计时的时间更新到页面上。下面是一个简单的HTML模板,用来展示倒计时。

<!-- 倒计时展示区域 -->
<div id="countdown">
  <div class="countdown-item">
    <span class="countdown-item-num" id="countdown-days">0</span>
    <span class="countdown-item-text">天</span>
  </div>
  <div class="countdown-item">
    <span class="countdown-item-num" id="countdown-hours">0</span>
    <span class="countdown-item-text">时</span>
  </div>
  <div class="countdown-item">
    <span class="countdown-item-num" id="countdown-minutes">0</span>
    <span class="countdown-item-text">分</span>
  </div>
  <div class="countdown-item">
    <span class="countdown-item-num" id="countdown-seconds">0</span>
    <span class="countdown-item-text">秒</span>
  </div>
</div>

上面的HTML代码中,我们使用了四个span标签,分别用来展示倒计时的天、小时、分钟和秒。接下来的代码片段将时间值更新到上述四个span标签上。

// 将时间值更新到页面上
document.getElementById('countdown-days').innerHTML = days;
document.getElementById('countdown-hours').innerHTML = hours;
document.getElementById('countdown-minutes').innerHTML = minutes;
document.getElementById('countdown-seconds').innerHTML = seconds;

4.示例说明

下面是两个示例说明,用来展示如何将上述代码实现到具体的页面中。

示例1:简单的倒计时展示

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>简单的倒计时展示</title>
</head>
<body>
  <!-- 倒计时展示区域 -->
  <div id="countdown">
    <div class="countdown-item">
      <span class="countdown-item-num" id="countdown-days">0</span>
      <span class="countdown-item-text">天</span>
    </div>
    <div class="countdown-item">
      <span class="countdown-item-num" id="countdown-hours">0</span>
      <span class="countdown-item-text">时</span>
    </div>
    <div class="countdown-item">
      <span class="countdown-item-num" id="countdown-minutes">0</span>
      <span class="countdown-item-text">分</span>
    </div>
    <div class="countdown-item">
      <span class="countdown-item-num" id="countdown-seconds">0</span>
      <span class="countdown-item-text">秒</span>
    </div>
  </div>

  <script>
    // 获取当前时间
    var now = new Date();
    // 获取未来结束时间
    var end = new Date('2021/12/31 23:59:59');
    // 计算间隔时间
    var leftTime = end.getTime() - now.getTime();
    // 获取各个时间单位的值
    var days = parseInt(leftTime / 1000 / 60 / 60 / 24);
    var hours = parseInt(leftTime / 1000 / 60 / 60 % 24);
    var minutes = parseInt(leftTime / 1000 / 60 % 60);
    var seconds = parseInt(leftTime / 1000 % 60);
    // 将时间值更新到页面上
    document.getElementById('countdown-days').innerHTML = days;
    document.getElementById('countdown-hours').innerHTML = hours;
    document.getElementById('countdown-minutes').innerHTML = minutes;
    document.getElementById('countdown-seconds').innerHTML = seconds;
    // 每隔一秒更新一次倒计时
    setInterval(function () {
      // 获取当前时间
      var now = new Date();
      // 获取未来结束时间
      var end = new Date('2021/12/31 23:59:59');
      // 计算间隔时间
      var leftTime = end.getTime() - now.getTime();
      // 获取各个时间单位的值
      var days = parseInt(leftTime / 1000 / 60 / 60 / 24);
      var hours = parseInt(leftTime / 1000 / 60 / 60 % 24);
      var minutes = parseInt(leftTime / 1000 / 60 % 60);
      var seconds = parseInt(leftTime / 1000 % 60);
      // 将时间值更新到页面上
      document.getElementById('countdown-days').innerHTML = days;
      document.getElementById('countdown-hours').innerHTML = hours;
      document.getElementById('countdown-minutes').innerHTML = minutes;
      document.getElementById('countdown-seconds').innerHTML = seconds;
    }, 1000); // 每隔一秒更新一次
  </script>
</body>
</html>

在上面的代码中,我们使用了setInterval()函数,每隔一秒钟自动更新一次倒计时。

示例2:滚动带动态效果的倒计时展示

下面是实现滚动带动态效果的倒计时展示。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>滚动带动态效果的倒计时展示</title>
  <style>
    #countdown {
      height: 80px;
      overflow: hidden;
      background-color: #f5f5f5;
      position: relative;
    }
    .countdown-item {
      width: 10%;
      height: 100%;
      position: absolute;
      top: 0;
      bottom: 0;
      background-color: #fff;
      box-shadow: inset 0 0 3px #ccc;
      transition: all .3s ease;
    }
    .countdown-item:first-child {
      left: 0;
    }
    .countdown-item:nth-child(2) {
      left: 10%;
    }
    .countdown-item:nth-child(3) {
      left: 20%;
    }
    .countdown-item:nth-child(4) {
      left: 30%;
    }
    .countdown-item:nth-child(5) {
      left: 40%;
    }
    .countdown-item:nth-child(6) {
      left: 50%;
    }
    .countdown-item:nth-child(7) {
      left: 60%;
    }
    .countdown-item:nth-child(8) {
      left: 70%;
    }
    .countdown-item:nth-child(9) {
      left: 80%;
    }
    .countdown-item:last-child {
      right: 0;
    }
    .countdown-item-num {
      font-size: 40px;
      display: block;
      line-height: 80px;
      text-align: center;
      color: #007bff;
    }
    .countdown-item-text {
      font-size: 14px;
      color: #333;
      text-align: center;
      margin-top: 10px;
      display: block;
    }
  </style>
</head>
<body>
  <!-- 倒计时展示区域 -->
  <div id="countdown">
    <div class="countdown-item">
      <span class="countdown-item-num" id="countdown-days"></span>
      <span class="countdown-item-text">天</span>
    </div>
    <div class="countdown-item">
      <span class="countdown-item-num" id="countdown-hours"></span>
      <span class="countdown-item-text">时</span>
    </div>
    <div class="countdown-item">
      <span class="countdown-item-num" id="countdown-minutes"></span>
      <span class="countdown-item-text">分</span>
    </div>
    <div class="countdown-item">
      <span class="countdown-item-num" id="countdown-seconds"></span>
      <span class="countdown-item-text">秒</span>
    </div>
    <div class="countdown-item"></div>
    <div class="countdown-item"></div>
    <div class="countdown-item"></div>
    <div class="countdown-item"></div>
    <div class="countdown-item"></div>
  </div>

  <script>
    // 获取当前时间
    var now = new Date();
    // 获取未来结束时间
    var end = new Date('2021/12/31 23:59:59');
    // 计算间隔时间
    var leftTime = end.getTime() - now.getTime();
    // 更新倒计时
    updateCountdown(leftTime);
    // 每隔一秒自动更新倒计时
    setInterval(function () {
      // 获取当前时间
      var now = new Date();
      // 计算间隔时间
      var leftTime = end.getTime() - now.getTime();
      // 更新倒计时
      updateCountdown(leftTime);
    }, 1000);

    // 更新倒计时
    function updateCountdown(leftTime) {
      // 获取各个时间单位的值
      var days = parseInt(leftTime / 1000 / 60 / 60 / 24);
      var hours = parseInt(leftTime / 1000 / 60 / 60 % 24);
      var minutes = parseInt(leftTime / 1000 / 60 % 60);
      var seconds = parseInt(leftTime / 1000 % 60);
      // 将时间值更新到页面上
      document.getElementById('countdown-days').innerHTML = formatNumber(days);
      document.getElementById('countdown-hours').innerHTML = formatNumber(hours);
      document.getElementById('countdown-minutes').innerHTML = formatNumber(minutes);
      document.getElementById('countdown-seconds').innerHTML = formatNumber(seconds);
      // 更新滚动动画
      updateAnimate();
    }

    // 更新滚动动画
    function updateAnimate() {
      var items = document.querySelectorAll('.countdown-item');
      items.forEach(function (item) {
        item.style.transform = '';
        var numEl = item.querySelector('.countdown-item-num');
        var num = parseInt(numEl.innerHTML);
        var height = item.offsetHeight;
        numEl.style.transform = 'translateY(' + (-num * height) + 'px)';
      });
    }

    // 数据格式化,将一位数值前补0
    function formatNumber(num) {
      return num < 10 ? '0' + num : num;
    }
  </script>
</body>
</html>

在上面的代码中,我们使用了CSS样式来将倒计时表示成一个滚动带动态效果的倒计时展示。在JavaScript中,我们用了两个函数:updateCountdown()updateAnimate()来实现每秒钟更新倒计时和滚动动画的效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一个不错的js html页面倒计时可精确到秒 - Python技术站

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

相关文章

  • Javascript单元测试框架QUnitjs详细介绍

    Javascript单元测试框架QUnitjs详细介绍 什么是QUnitjs? QUnitjs是JavaScript单元测试框架之一。它最初是为jQuery项目创建的,但是它已经发展成为一个独立的项目,并可以用于测试任何JavaScript代码。 QUnit提供了一组函数来编写测试,并提供了丰富的断言方法,方便开发人员编写测试用例并判断测试结果。它使用简单明…

    JavaScript 2023年6月10日
    00
  • JavaScript+canvas实现七色板效果实例

    下面是详细讲解“JavaScript+canvas实现七色板效果实例”的完整攻略。 一、背景介绍 在现代Web前端开发中,Canvas是使用最广泛的绘图技术之一。Canvas可以用来绘制各种图形,文字,图片等,也可以用来制作动画,实现图像处理等。在本文中,我们将介绍如何使用JavaScript+Canvas实现七色板效果,这是一个非常酷的效果,让你的网站更加…

    JavaScript 2023年6月11日
    00
  • 原生JS实现小小的音乐播放器

    原生JS实现小小的音乐播放器 概述 小小的音乐播放器是一个使用原生JS实现的简单的Web音乐播放器,由于功能简单,易于理解和操作,因此适合JS初学者学习。本攻略将分为以下几个部分: 开始 HTML结构 CSS样式 JS功能 示例说明 结束 开始 首先,我们需要一个开发环境,可以使用如下几种: Notepad++ Visual Studio Code Atom…

    JavaScript 2023年6月11日
    00
  • 原生js实现淘宝购物车功能

    原生js实现淘宝购物车功能的攻略可以分为以下几个步骤: 步骤一:页面结构 首先,我们需要在页面中设置一个存放购物车商品的容器,并给它一个id,方便我们后续在JavaScript中获取到它的元素: <div id="cart-container"> </div> 步骤二:获取数据 接下来,我们需要从后台获取购物车中的…

    JavaScript 2023年6月11日
    00
  • javascript数组的使用

    JavaScript 数组是一种特殊的对象,用于存储多个值。它的索引是数字,从0开始递增,而不是像其他编程语言一样可以自定义。本文将详细介绍如何创建、访问、添加、删除、迭代和排序 JavaScript 数组。 创建 JavaScript 数组 有两种常用的创建 JavaScript 数组的方式: 括号表示法和构造函数表示法。 使用括号表示法进行JavaScr…

    JavaScript 2023年5月18日
    00
  • 关于JavaScript与HTML的交互事件

    关于JavaScript与HTML的交互事件的完整攻略,我们可以通过以下步骤进行实现: 1.选中HTML元素 我们可以使用JavaScript选择器去选中我们想要操作的HTML元素,可以是ID、class、标签名等。 示例一: <!DOCTYPE html> <html> <head> <title>选中HTM…

    JavaScript 2023年6月10日
    00
  • Vue联动Echarts实现数据大屏展示

    下面是“Vue联动Echarts实现数据大屏展示”的完整攻略。 一、什么是Vue联动Echarts Vue是一款流行的前端框架,Echarts是一款流行的数据可视化库。Vue联动Echarts的实现,就是将Vue与Echarts进行结合,实现数据的动态展示和交互。 二、如何实现Vue联动Echarts 1. 引入Echarts 在项目中引入Echarts库,…

    JavaScript 2023年6月11日
    00
  • JavaScript实现可终止轮询请求的方法

    我将为您详细讲解“JavaScript实现可终止轮询请求的方法”的完整攻略。 1. 什么是轮询请求 轮询请求是指客户端通过一定的时间间隔周期性地向服务器发送请求,以获取最新的数据或状态。一般来说,客户端需要不断向服务器发送请求,直到服务端返回需要的最新信息。 2. 实现可终止轮询请求的方法 2.1 XMLHttpRequest XMLHttpRequest是…

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