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

yizhihongxing

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实现带并发限制的异步调度器

    下面我将详细讲解“基于JS实现带并发限制的异步调度器”的完整攻略。 首先,我们需要明确“异步调度器”的定义。它是用于管理和控制异步任务执行的工具,常见的应用场景有批量请求处理、网络爬虫、图片下载等。为了避免过度并发导致系统资源的浪费,我们需要对任务的并发量进行限制,这就需要实现一个带并发限制的异步调度器。 接下来,我们将介绍如何利用JavaScript实现带…

    JavaScript 2023年6月11日
    00
  • Easy.Ajax 部分源代码 支持文件上传功能, 兼容所有主流浏览器

    Easy.Ajax 是一款基于 jQuery 库的 Ajax 库,用于简化 Ajax 的操作流程。其中,Easy.Ajax 部分源代码支持文件上传功能,同时兼容各大主流浏览器。下面将详细讲解该功能的使用方法。 首先,需要在页面中引入必要的文件及库: <!– 引入 jQuery 库 –> <script src="https:/…

    JavaScript 2023年6月11日
    00
  • js下载文件并修改文件名

    下面是JS下载文件并修改文件名的完整攻略: 1. 使用XMLHttpRequest对象下载文件并修改文件名 XMLHttpRequest对象是一个内置的JavaScript对象,可以用于从服务器获取数据,包括文件。可以利用它来下载文件并修改文件名。 示例一:下载图片并修改文件名 function downloadImage(url, filename) { …

    JavaScript 2023年5月27日
    00
  • JS实现图片旋转动画效果封装与使用示例

    下面是对“JS实现图片旋转动画效果封装与使用示例”的详细讲解: 标题 JS实现图片旋转动画效果封装与使用示例 描述 本文介绍如何使用JavaScript封装实现图片旋转的动画效果,并提供两个使用示例,帮助读者更好地理解这个实现过程。 动画效果实现原理 要想实现图片旋转动画效果,需要借助CSS3的transform属性。其中,transform属性可以改变元素…

    JavaScript 2023年6月10日
    00
  • 基于HTML模板和JSON数据的JavaScript交互(移动端)

    基于HTML模板和JSON数据的JavaScript交互是一种常用的方式来进行前后端分离开发。它的实现步骤一般是: 定义好HTML模板,需要将不确定的部分用占位符代替,比如使用{{}}表示需要从JSON数据中读取的值。 在JS中通过AJAX请求后端API接口获取JSON数据,并对其进行处理。 将处理后的JSON数据渲染到HTML模板中的相应占位符处。 将渲染…

    JavaScript 2023年5月27日
    00
  • js实现内容显示并使用json传输数据

    让我来详细讲解一下”JS实现内容显示并使用JSON传输数据”的攻略。 什么是JSON JSON(JavaScript Object Notation),是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON采用键值对(key-value)的方式表示数据,是当今最常用的一种数据格式之一。 JS实现内容显示 使用JS实现内容显示有很多方…

    JavaScript 2023年5月27日
    00
  • JavaScript中split() 使用方法汇总

    JavaScript中的split()方法是字符串对象中常用的方法之一,它可以根据指定的分隔符将一个字符串拆分成数组。这个方法在数据处理、字符串操作、数据分割等场景中非常实用。本文将对split()方法进行详细的讲解,希望能对读者能有所帮助。 split()方法的语法和参数 split()方法的语法如下: str.split(separator, limit…

    JavaScript 2023年5月28日
    00
  • 一起来看看JavaScript数据类型最详解

    一起来看看JavaScript数据类型最详解 简介 JavaScript是一种脚本语言,它的数据类型有很多种。了解JavaScript数据类型的完整列表,以及它们在代码中的特征和用法,对于学习和编写JavaScript代码至关重要。本文将会对JavaScript中的数据类型做出详细的讲解,涵盖以下几个方面: JavaScript的7种数据类型 JavaScr…

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