JS 实现倒计时数字时钟效果【附实例代码】

JS 实现倒计时数字时钟效果是一个比较常见的前端特效,本文将为大家分享如何实现这个效果并附上实例代码。以下是完整攻略:

第一步:HTML 基础

首先,我们需要在 HTML 中创建一个数字时钟展示区域,可以选择一个 div 包含一个 h1 标签或者直接使用 h1 标签。具体代码如下:

<div id="countdown-clock">
  <h1 id="countdown-display">00:00:00</h1>
</div>

第二步:CSS 样式

为了显示良好,我们需要为数字时钟展示区域添加一些样式。以下是一个示例 CSS 样式:

#countdown-clock {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 64px;
  width: 100%;
  background-color: #000;
}

#countdown-display {
  font-size: 48px;
  text-align: center;
  color: #fff;
}

这些样式可以根据需求进行自定义。

第三步:JS 实现倒计时

这是实现数字时钟的核心部分。我们需要使用 JavaScript 创建一个倒计时器,同时更新时钟上的数字。以下是实现代码:

// 倒计时目标时间,可以根据需求自定义
var targetTime = new Date("2022-12-31 23:59:00").getTime();

// 更新时钟的函数
function updateClock() {
  var now = new Date().getTime();
  var distance = targetTime - now;

  // 计算出时、分、秒
  var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
  var seconds = Math.floor((distance % (1000 * 60)) / 1000);

  // 格式化数字,保证时、分、秒都有两位数
  hours = ("0" + hours).slice(-2);
  minutes = ("0" + minutes).slice(-2);
  seconds = ("0" + seconds).slice(-2);

  // 更新时钟展示区域的内容
  var clockDisplay = document.getElementById("countdown-display");
  clockDisplay.innerHTML = hours + ":" + minutes + ":" + seconds;

  // 如果倒计时结束,输出 "倒计时结束!!!"
  if (distance < 0) {
    clearInterval(countdownInterval);
    clockDisplay.innerHTML = "倒计时结束!!!";
  }
}

// 每秒钟更新一次时钟
var countdownInterval = setInterval(updateClock, 1000);

以上代码中,我们首先设置了倒计时的目标时间 targetTime,然后定义了一个更新时钟的函数 updateClock。在这个函数中,我们用 new Date().getTime() 获取了当前时间戳,然后计算出目标时间与当前时间的时差(单位为毫秒)。接下来,我们使用 Math.floor 函数从时差中获取时、分、秒,并使用 slice(-2) 函数格式化数字。最后,我们使用 document.getElementById 获取时钟展示区域的元素,并将该元素的 innerHTML 设置为格式化后的时、分、秒。如果倒计时已经结束,我们清除更新时钟的 interval,并更新时钟展示区域的内容为“倒计时结束!!!”。

第四步:附加功能

除了基本的倒计时功能,我们还可以为数字时钟添加其他有用的功能。下面是两个示例:

示例一:可设置倒计时目标时间

我们可以在 HTML 中添加一个文本框,允许用户输入倒计时的目标时间:

<div id="countdown-clock">
  <h1 id="countdown-display">00:00:00</h1>
  <input id="countdown-input" type="datetime-local">
  <button onclick="setCountdownTime()">设置倒计时</button>
</div>

然后在 JavaScript 中添加一个 setCountdownTime() 函数,将用户输入的时间作为倒计时的目标时间:

function setCountdownTime() {
  var input = document.getElementById("countdown-input").value;
  targetTime = new Date(input).getTime();
}

示例二:倒计时时添加动画效果

我们可以为数字时钟添加动画效果,使其看起来更加炫酷。以下是一个示例 CSS 样式:

#countdown-clock {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 64px;
  width: 100%;
  background-color: #000;
  animation: pulse 1s ease-in-out infinite alternate;
}

@keyframes pulse {
  0% { transform: scale(1); }
  100% { transform: scale(1.2); }
}

#countdown-display {
  font-size: 48px;
  text-align: center;
  color: #fff;
}

这个样式将数字时钟展示区域设置为一个闪烁的“pulse”动画。

至此,JS 实现倒计时数字时钟效果的完整攻略已经分享完毕。希望对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS 实现倒计时数字时钟效果【附实例代码】 - Python技术站

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

相关文章

  • JS函数式编程之纯函数、柯里化以及组合函数

    函数式编程是一种以函数为中心的编程范式。在JavaScript中,函数式编程被越来越广泛地使用。本文将介绍函数式编程中的三个重要概念:纯函数、柯里化和组合函数。 纯函数 纯函数是指满足以下条件的函数: 给定相同的输入,总是返回相同的输出。 不产生副作用,即不会影响到函数外部的状态,如修改全局变量或参数。 纯函数的优点在于: 可以简化代码的测试和调试,因为纯函…

    JavaScript 2023年5月27日
    00
  • 在js文件中引入(调用)另一个js文件的三种方法

    在 JavaScript 中引入(调用)其他 JavaScript 文件的方式主要有以下三种: 1. 使用<script>标签引入(调用)其他 JavaScript 文件 使用<script>标签可以在 HTML 文件中引入(调用)其他 JavaScript 文件,该文件可以被浏览器直接加载。 <script>标签通常放在…

    JavaScript 2023年5月27日
    00
  • JavaScript实现cookie的写入、读取、删除功能

    当一个web页面被加载到浏览器中时,浏览器会为它分配一个cookie的存储区域。此时,开发者可以通过JavaScript代码来操作cookie的写入、读取和删除等功能。 写入cookie 可以使用document.cookie来写入cookie。document.cookie是一个字符串,它存储着当前网页的所有cookie。写入cookie的格式如下: do…

    JavaScript 2023年6月11日
    00
  • javascript数据类型基础示例教程

    下面是关于“JavaScript数据类型基础示例教程”的完整攻略: 1. 概述 在JavaScript中,数据类型是构造Web应用程序时的重要概念。JavaScript数据类型包括基本数据类型和复杂数据类型。 基本数据类型包括:数字(Numbers)、字符串(Strings)、布尔值(Booleans)、空值(null)和未定义(undefined)。 复杂…

    JavaScript 2023年5月18日
    00
  • 微信小程序实现底部弹出框

    微信小程序实现底部弹出框的方法有多种,其中较为简便的一种是利用wepy-ui组件库中的popup组件来实现。wepy-ui是一套专为wepy框架打造的组件库,若使用其他框架或原生小程序不适用。以下是具体步骤: 1. 安装wepy-ui 使用wepy-ui组件库之前必须要先安装,可以通过npm命令安装: npm i wepy-ui -S 2. 引入popup组…

    JavaScript 2023年6月11日
    00
  • jQuery实现动画效果的简单实例

    下面我将详细讲解“jQuery实现动画效果的简单实例”的完整攻略。 前言 在现代web开发中,我们经常需要制作各种动画效果来增加用户体验,利用jQuery来实现动画效果可以帮助开发人员大大降低实现的难度和代码量。在这篇攻略中,我们将通过两个简单的例子来演示如何使用jQuery来实现动画效果。 实例1:淡入淡出效果 下面是一个简单的jQuery实现淡入淡出效果…

    JavaScript 2023年6月10日
    00
  • JavaScript闭包和作用域链的定义实现

    JavaScript闭包和作用域链的定义实现 什么是闭包? 在JavaScript中,闭包是指每个函数在创建时会生成一个自己的执行环境,这个执行环境可以访问到它自身定义的变量、参数,也可以访问父级的变量,而且这个执行环境可以一直存在,即使函数执行完,此时这个执行环境也不会被销毁。 简单来说,就是可以访问父级作用域的函数,创建出来的执行环境,这种执行环境中包含…

    JavaScript 2023年6月10日
    00
  • JavaScript getter setter金字塔​​​​​​​

    JavaScript getter setter金字塔是一个针对JavaScript对象的编程技巧,用于在对象中定义getter和setter方法,这些方法可以设置和获取对象的属性值。这个技巧的特点是将getter和setter方法嵌套在一起,形成一个金字塔状的结构,以实现对对象属性的高度定制和控制。 以下是完整的JavaScript getter sett…

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