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日

相关文章

  • 理解 JavaScript EventEmitter

    理解 JavaScript EventEmitter EventEmitter 是 Node.js 的核心模块之一,不过它也可以在浏览器中使用。通过 EventEmitter,我们可以简单而有效地实现各种事件模型,如事件监听、事件触发等;在 Web 开发中,EventEmitter 常用于实现自定义事件机制。 什么是 EventEmitter? EventE…

    JavaScript 2023年5月28日
    00
  • 利用JavaScript编写Python内置函数查询工具

    我来讲解一下”利用JavaScript编写Python内置函数查询工具”的攻略。 步骤一:准备工作 首先,我们需要在网页上嵌入一个文本框和一个按钮,文本框用于输入Python内置函数的名称,按钮用于触发查询操作。这个过程可以通过HTML和JavaScript代码来实现。 <body> <input type="text"…

    JavaScript 2023年5月28日
    00
  • javascript写一个ajax自动拦截并下载数据代码实例

    这里给出一个完整的“javascript写一个ajax自动拦截并下载数据”的攻略。 1. 理解AJAX AJAX全称为Asynchronous Javascript And XML,即异步JavaScript和XML,是一种在Web页面中实现异步数据交互的技术。使用AJAX可以在不刷新整个页面的情况下,通过后台异步加载数据,实现局部数据的更新。 2. 如何实…

    JavaScript 2023年6月10日
    00
  • JS实现线性表的链式表示方法示例【经典数据结构】

    标题:JS实现线性表的链式表示方法示例【经典数据结构】 简介:本篇文章将讲解JavaScript实现线性表的链式存储结构的方法和示例。通过本文的学习,读者将会掌握线性表的链式存储结构和如何使用JavaScript来实现。 什么是线性表? 线性表是指数据元素之间存在一种线性关系的数据结构。线性表中的数据元素按照顺序排列,每个数据元素都只有一个前驱元素和一个后继…

    JavaScript 2023年5月28日
    00
  • javascript Window及document对象详细整理

    JavaScript Window及Document对象详细整理 在 JavaScript 中,Window 和 Document 是两个常用的对象,它们分别代表浏览器窗口和文档模型。本文将详细讲解它们的各种属性和方法。 Window 对象 Window 对象是 JavaScript 代码的全局对象,即在浏览器中,它代表整个浏览器窗口。在没有指定父窗口的情况…

    JavaScript 2023年5月27日
    00
  • JavaScript+html5 canvas制作的百花齐放效果完整实例

    下面我将为您详细讲解“JavaScript+html5 canvas制作的百花齐放效果完整实例”的完整攻略。 需求分析 首先我们需要明确需求,对于“JavaScript+html5 canvas制作的百花齐放效果完整实例”,我们需要实现什么样的效果呢? 具体而言,我们需要实现以下特点: 在canvas上绘制出多个不同颜色、不同形状的花朵 花朵应该随机飘落、旋…

    JavaScript 2023年6月10日
    00
  • javascript alert乱码的解决方法

    Javascript alert乱码的解决方法其实比较简单,主要就是需要提前设置网页的charset为UTF-8,接下来,我将详细说明如何进行解决,具体步骤如下: 设置charset为UTF-8 打开HTML文件或模板文件,添加以下代码到HTML文件头部,对于网站的每个页面都需要添加: <meta charset="UTF-8"&g…

    JavaScript 2023年5月19日
    00
  • js Event对象的5种坐标

    JS Event对象包含5种不同的坐标属性,它们可以用来描述事件的发生位置,这些坐标属性分别是: clientX和clientY pageX和pageY screenX和screenY offsetX和offsetY x和y 下面就逐一介绍这5种坐标属性的含义和使用方法: 1. clientX和clientY clientX和clientY属性用来获取事件的…

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