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

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

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日

相关文章

  • JavaScript 时分秒时间代码(自动补零)

    关于JavaScript时分秒时间代码的自动补零,我们可以采用以下两种方式实现: 1. 使用自带方法 padStart() 该方法可以在字符串前添加指定数量的字符,从而实现自动补零。具体参考以下示例代码: // 获取当前时间 const now = new Date(); // 获取时分秒 const hour = now.getHours(); const…

    JavaScript 2023年5月27日
    00
  • Vue.js仿微信聊天窗口展示组件功能

    Vue.js仿微信聊天窗口展示组件功能的完整攻略如下: 一、背景说明 在网页端实现类似微信聊天窗口展示的组件功能是很常见的需求,在Vue.js中可以通过简单的组件开发实现。以下是具体的实现过程。 二、技术栈要求 在实现过程中,需要用到以下技术栈: Vue.js:前端MVVM框架 webpack:模块打包工具 Sass:CSS预处理器 三、基础页面结构 首先需…

    JavaScript 2023年6月10日
    00
  • 判断一个变量是数组Array类型的方法

    判断一个变量是否为数组类型的方法: 有多种方法来判断一个变量是否为数组类型,下面介绍其中的几种方法: 方法一:使用Array.isArray()方法 Array.isArray()方法可以判断传入的参数是否为数组类型,若为数组类型,返回true;否则返回false。 示例代码如下: const arr = [1, 2, 3]; console.log(Arr…

    JavaScript 2023年5月27日
    00
  • JS 实现获取验证码 倒计时功能

    获取验证码倒计时功能在网页中使用得非常广泛,下面我将介绍JS如何实现这个功能,主要分为两个步骤:发送验证码请求和倒计时显示。 发送验证码请求 一般情况下,获取验证码的请求会发送给后端,后端会去生成验证码并发送给前端。前端只要在发送请求时携带相应的参数即可,下面是一个使用AJAX发送验证码请求的示例: // 获取验证码按钮点击事件 $(‘#get-verify…

    JavaScript 2023年6月11日
    00
  • 基于JavaScript 性能优化技巧心得(分享)

    基于JavaScript 性能优化技巧心得(分享) JavaScript 在网页交互中扮演着非常重要的角色,但是 JavaScript 的执行效率相对较差,因此,为了提高网页性能,我们需要对 JavaScript 进行性能优化。本文将介绍几个基于 JavaScript 性能优化技巧的心得。 减少全局变量使用 全局变量在 JavaScript 中会优先存在于全…

    JavaScript 2023年6月11日
    00
  • JavaScript进阶练习及简单实例分析

    下面是“JavaScript进阶练习及简单实例分析”的完整攻略。 JavaScript进阶练习 递归 递归是指函数调用自身的一种行为。在JavaScript中,递归经常用来解决一些复杂问题,比如搜索和排序等。 示例1:计算阶乘 以下代码演示了如何使用递归计算阶乘: function factorial(n) { if (n === 0) { return 1…

    JavaScript 2023年5月18日
    00
  • 小程序异步问题之多个网络请求依次执行并依次收集请求结果

    当小程序中需要同时发起多个网络请求,并且这些网络请求需要按顺序执行,每个请求执行完成后需要依次收集请求结果时,就需要解决小程序的异步问题。 下面是实现多个网络请求依次执行并依次收集请求结果的完整攻略: 方法一:Promise + async/await 使用Promise.all方法,将需要按顺序执行的请求封装成Promise对象,传入Promise.all…

    JavaScript 2023年6月11日
    00
  • 可以读取EXCEL文件的js代码第2/2页

    让我来为您详细讲解如何读取EXCEL文件的JS代码攻略。 一、安装依赖 要读取EXCEL文件,我们首先需要安装必要的依赖。请使用以下命令安装: npm install xlsx 二、导入模块 安装完依赖后,我们需要在JS文件中导入xlsx模块,以便使用其中的操作函数。请使用以下代码导入: const XLSX = require("xlsx&quo…

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