原生js实现节日时间倒计时功能

yizhihongxing

对于网站开发者来说,实现节日倒计时功能是一个很有趣的项目。下面是实现节日时间倒计时功能的完整攻略:

1. HTML 结构

<p id="countdown"></p>

在 HTML 中建立一个计时器的 DOM 元素,在本例中是一个段落元素,被赋予 ID 为 countdown。

2. JavaScript 代码

  • 创建指定的日期时间对象,并使用 Date.now() 获取当前时间,以毫秒为单位。
const countdown = document.getElementById('countdown');

const holidayDate = new Date('January 1, 2022 00:00:00').getTime();
const today = Date.now();
  • 用户需要知道剩余的时间。计算两个日期时间对象之间的差值,并将结果显示在页面上。
const difference = holidayDate - today;

// 分别计算天、小时、分钟和秒
const days = Math.floor(difference / (1000 * 60 * 60 * 24));
const hours = Math.floor((difference % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
const minutes = Math.floor((difference % (1000 * 60 * 60)) / (1000 * 60));
const seconds = Math.floor((difference % (1000 * 60)) / 1000);

// 更新页面
countdown.innerHTML = `${days}d ${hours}h ${minutes}m ${seconds}s`;

在这个示例中,倒计时只考虑天数、小时、分和秒。首先通过差值计算天数,并将余数存储下来。然后用相同的方法计算小时、分钟和秒,通过模运算计算余数。最后更新页面。

  • 创建一个计时器函数,每秒调用一次该函数
setInterval(() => {
  const holidayDate = new Date('January 1, 2022 00:00:00').getTime();
  const today = Date.now();
  const difference = holidayDate - today;

  const days = Math.floor(difference / (1000 * 60 * 60 * 24));
  const hours = Math.floor((difference % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  const minutes = Math.floor((difference % (1000 * 60 * 60)) / (1000 * 60));
  const seconds = Math.floor((difference % (1000 * 60)) / 1000);

  countdown.innerHTML = `${days}d ${hours}h ${minutes}m ${seconds}s`;
}, 1000);

本例中,setInterval() 每 1000 毫秒调用一次匿名函数。在匿名函数中,代码计算日期和差值,更新 DOM 中的倒计时,并将其显示为字符串。

示例说明

下面是两条针对方法2中的示例说明。

  • 示例1:实现跨年倒计时

假设希望在跨年期间向网站添加倒计时功能。原本的代码是在以下情况下执行的:

const holidayDate = new Date('January 1, 2022 00:00:00').getTime();

可以将代码中的“January 1, 2022 00:00:00”替换为当前年份的新年倒计时日期。也可以使用从数据源或 API 获得的值来动态加载日期。

  • 示例2:添加样式和格式

默认情况下,倒计时不具备任何样式和格式。可以添加样式以使其与网站完美融合。比如:

#countdown {
  display: inline-block;
  font-size: 2rem;
  text-align: center;
  padding: 1rem;
  border-radius: 0.5rem;
  background-color: lightgray;
}

在这个例子中,我们为倒计时元素创建了样式,并将其设置为灰色背景。根据需要进行更改。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:原生js实现节日时间倒计时功能 - Python技术站

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

相关文章

  • 11个Javascript小技巧帮你提升代码质量(小结)

    下面是针对“11个Javascript小技巧帮你提升代码质量(小结)”这篇文章的完整攻略: 1. 使用const和let代替var 在 ES6 中引入了两个新关键字:const 和 let,它们可以分别用于声明常量和变量。使用 const 和 let 替代了旧的 var 关键字可以避免变量提升的问题。同时,let 也仅在块作用域内有效,而 var 在全局作用…

    JavaScript 2023年6月10日
    00
  • 详解JavaScript闭包问题

    下面是详解“详解JavaScript闭包问题”的完整攻略: 什么是闭包 闭包(Closure)指的是在一个函数内部声明的函数,该内部函数可以访问外部函数作用域内的变量。换句话说,如果在一个函数内部声明了另一个函数,并且外部的代码可以访问该内部函数,那么该内部函数才算是一个闭包。 闭包的特性 闭包有两个主要的特性: 可以访问外部函数作用域内的变量 可以在外部函…

    JavaScript 2023年5月18日
    00
  • python迭代器与生成器详解

    Python迭代器与生成器详解 本文将介绍Python中的迭代器和生成器的基础知识、定义方法、实现方式、常见用法以及注意事项等方面内容。 什么是迭代器? 迭代器是Python中一种数据访问方式。迭代器是一个可以记住遍历位置的对象,迭代器对象从集合的第一个元素开始访问,直到所有元素被访问完毕。迭代器只能往前遍历,不能后退。 Python的迭代器有两个基本的方法…

    JavaScript 2023年5月28日
    00
  • javascript在myeclipse中报错的解决方法

    当我们在 MyEclipse 中使用 JavaScript 时,有时可能会遇到各种报错,这可能是由于文件路径、文件名、语法错误及其他原因引起的。本文将为您介绍一些解决方法,帮助您更好地使用 MyEclipse 编写 JavaScript。 1. 检查文件路径 在 MyEclipse 中编写 JavaScript 时,我们必须确保文件路径正确。如果文件路径不正…

    JavaScript 2023年5月18日
    00
  • js鼠标按键事件和键盘按键事件用法实例汇总

    下面是“js鼠标按键事件和键盘按键事件用法实例汇总”的完整攻略。 一、鼠标按键事件 鼠标按键事件是指用户通过鼠标在网页上进行的操作,常用的鼠标按键事件有mousedown、mouseup、click、dbclick、mousemove等。 1. mousedown事件 mousedown事件在鼠标按下的时候触发,常用于实现鼠标拖动等交互效果。示例代码如下: …

    JavaScript 2023年5月28日
    00
  • JavaScript自定义事件介绍

    以下是JavaScript自定义事件的详细介绍: 什么是JavaScript自定义事件? 在JavaScript中,自定义事件是指可以自定义触发和监听的事件,以便根据需要执行某些操作。 如何定义自定义事件? 我们可以使用原生JavaScript或者第三方库(例如jQuery)来定义自定义事件。以下是几种定义自定义事件的方式: 1. 使用Event对象 con…

    JavaScript 2023年6月10日
    00
  • springboot项目如何防止XSS攻击

    在SpringBoot项目中防止XSS攻击可以采取以下措施: 使用HTML转义库 在应用中使用HTML转义库比如jsoup、owasp-esapi、htmlentities等,可以过滤掉HTML标签并且转义掉敏感字符,这样可以有效避免XSS攻击。 例如,在Spring Boot项目中,我们可以使用前面提到的jsoup库来进行HTML转义: String sa…

    JavaScript 2023年6月11日
    00
  • javascript中导出与导入实现模块化管理教程

    以下是对“javascript中导出与导入实现模块化管理教程”的完整攻略: JavaScript中导出与导入实现模块化管理教程 为什么需要模块化? 在编写JavaScript代码时,代码量可能会变得非常庞大和复杂,由于所有逻辑都在同一个js文件中,导致代码结构混乱,代码复用性不高。 随着代码量的增大,我们会面临着不好维护的代码库、命名冲突、团队开发、性能和可…

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