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中LocalStorage与SessionStorage五种循序渐进的使用方法

    LocalStorage和SessionStorage是HTML5中提供的本地存储技术,可用于存储一些少量的数据(5-10MB左右),用于客户端浏览器处理一些无需进行服务器数据交互的场景。在JavaScript中,我们可以使用以下五种方法来使用LocalStorage和SessionStorage。 1. 存储数据 LocalStorage和SessionS…

    JavaScript 2023年6月11日
    00
  • JavaScript实现字符串与HTML格式相互转换

    下面是实现JavaScript字符串与HTML格式相互转换的完整攻略。 一、将字符串转为HTML格式 1.1 转义特殊字符 在将字符串转为HTML格式时,需要注意转义一些特殊字符,以保证HTML格式的正确性。常见的特殊字符包括: & 替换为 & < 替换为 < 替换为 > ” 替换为 " ‘ 替换为 ' 代…

    JavaScript 2023年5月28日
    00
  • 原生JS:Date对象全面解析

    原生JS:Date对象全面解析 什么是Date对象 Date 对象是 JavaScript 中的内置对象,用于处理日期和时间。可以使用 new 关键字实例化一个 Date 对象。 var now = new Date(); 上述代码会返回一个 Date 对象,表示当前的日期和时间。 Date对象的方法和属性 获取年份,月份和日期 Date 对象提供了获取其表…

    JavaScript 2023年5月27日
    00
  • JavaScript高级程序设计 DOM学习笔记

    我将为您详细讲解“JavaScript高级程序设计 DOM学习笔记”的完整攻略。 学习JS DOM的必要性 JavaScript中,DOM(文档对象模型)是一种非常重要的知识点,它是在HTML和XML文档中操作和访问节点的API。掌握DOM可以让我们更加灵活地操作页面元素,更好地实现网页的交互效果。 学习JS DOM的入门 获取元素 在DOM中,我们首先要学…

    JavaScript 2023年5月27日
    00
  • JS数组进阶示例【数组的几种函数用法】

    JS数组进阶示例【数组的几种函数用法】是一个关于JavaScript数组的进阶教程。本教程主要介绍了数组的一些常用函数用法,可以帮助读者更好地理解和运用JavaScript数组。 目录 map()函数 reduce()函数 filter()函数 示例教程1:统计颜色 示例教程2:计算平均分 map()函数 map()函数是一种用于处理数组元素的函数,它会将数…

    JavaScript 2023年5月27日
    00
  • js获取时间并实现字符串和时间戳之间的转换

    获取时间是前端开发中的常见需求,一般有两种方式获取时间,一种是获取当前时间,另一种是获取指定时间。在这基础上,我们可以实现字符串和时间戳之间的相互转换。 获取当前时间 我们可以使用new Date()对象获取当前时间,然后将其转换为需要的字符串格式。以下代码展示了如何将当前时间转换为年-月-日时分秒格式: // 获取当前时间 let now = new Da…

    JavaScript 2023年5月27日
    00
  • 同一页面多个商品倒计时JS 基于面向对象的javascript

    同一页面多个商品倒计时JS 基于面向对象的javascript 在电商网站中,多个商品可能需要倒计时进行限时抢购,这就需要一个基于面向对象的JavaScript代码来实现同时倒计时多个商品的功能。 实现思路 倒计时插件封装:封装一个倒计时插件,基于面向对象的设计,实现倒计时功能。 商品对象封装:封装商品对象,其中包含了商品倒计时功能,以及与页面交互的方法。 …

    JavaScript 2023年6月10日
    00
  • JavaScript制作简单计算器功能

    JavaScript可以用于制作简单的计算器功能。以下是实现此功能的步骤: 1. HTML布局 首先,在HTML文件中创建一个表单,包含数字和运算符按钮以及计算结果的文本框。例如: <form> <input type="text" id="result" name="result&quot…

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