javascript实现简单倒计时效果

下面是“JavaScript实现简单倒计时效果”的完整攻略:

1. 准备工作

在实现倒计时之前,需要考虑几个方面:
1. 计时器应该显示在页面的哪个位置
2. 倒计时的目标时间是多少
3. 如果倒计时结束之后需要执行什么操作
所以我们可以准备一个包含倒计时的容器元素和需要倒计时到的时间的变量。

在HTML中定义计时器容器的元素:

<div id="countdown"></div>

在JS中定义倒计时所需的变量:

let countDownDate = new Date("2021-12-31T23:59:59").getTime(); // 倒计时到2021年12月31日23时59分59秒
let countdown = document.getElementById("countdown");

2. 实现倒计时

计时器主要分为两个部分:
1. 计算剩余时间
2. 更新计时器显示

计算剩余时间:

let now = new Date().getTime(); // 获取当前时间
let distance = countDownDate - now; // 计算距离倒计时结束还有多久时间

更新计时器显示:

let days = Math.floor(distance / (1000 * 60 * 60 * 24)); // 计算还剩下多少天
let hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); // 计算还剩下多少小时
let minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); // 计算还剩下多少分钟
let seconds = Math.floor((distance % (1000 * 60)) / 1000); // 计算还剩下多少秒

countdown.innerHTML = `距离倒计时结束还有 ${days} 天 ${hours} 小时 ${minutes} 分钟 ${seconds} 秒`;

3. 判断倒计时是否结束

为了在倒计时结束之后执行一些操作,我们需要对剩余时间进行判断,

if(distance <= 0) {
    clearInterval(intervalId); // 倒计时结束,清除计时器
    countdown.innerHTML = "倒计时结束";
    // 在此处添加倒计时结束后的操作
}

4. 示例说明

示例1:在页面上创建一个倒计时计时器,当倒计时结束时,在页面上弹出一个提示框。

// HTML
<div id="countdown"></div>

// JS 
let countDownDate = new Date("2021-12-31T23:59:59").getTime();
let countdown = document.getElementById("countdown");

function startCountdown() {
    let intervalId = setInterval(() => {
        let now = new Date().getTime();
        let distance = countDownDate - now;

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

        countdown.innerHTML = `距离倒计时结束还有 ${days} 天 ${hours} 小时 ${minutes} 分钟 ${seconds} 秒`;

        if(distance <= 0) {
            clearInterval(intervalId);
            countdown.innerHTML = "倒计时结束";
            alert("倒计时结束!");
        }
    }, 1000);
}

startCountdown();

示例2:在页面上创建多个倒计时计时器,每个计时器倒计时的目标时间都不同。

// HTML
<div class="countdown"></div>
<div class="countdown"></div>

// JS
let countDownDates = [
    new Date("2021-12-31T23:59:59").getTime(),
    new Date("2022-12-31T23:59:59").getTime(),
];
let countdowns = document.querySelectorAll(".countdown");

function startCountdown() {
    for(let i = 0; i < countdowns.length; i++) {
        let intervalId = setInterval(() => {
            let now = new Date().getTime();
            let distance = countDownDates[i] - now;

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

            countdowns[i].innerHTML = `距离倒计时结束还有 ${days} 天 ${hours} 小时 ${minutes} 分钟 ${seconds} 秒`;

            if(distance <= 0) {
                clearInterval(intervalId);
                countdowns[i].innerHTML = "倒计时结束";
            }
        }, 1000);
    }
}

startCountdown();

以上就是JavaScript实现简单倒计时效果的完整攻略了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript实现简单倒计时效果 - Python技术站

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

相关文章

  • Javascript Boolean constructor 属性

    以下是关于JavaScript Boolean constructor属性的完整攻略。 JavaScript Boolean constructor属性 JavaScript Boolean constructor属性是Boolean对象的一个属性,它返回对创建Boolean对象的函数的引用。该属性是静态的,可以通过Boolean构造函数访问。 下面是一个使…

    JavaScript 2023年5月11日
    00
  • django admin 使用SimpleUI自定义按钮弹窗框示例

    下面是“django admin 使用SimpleUI自定义按钮弹窗框示例”的完整攻略以及其中的两个示例说明。 1. 什么是SimpleUI SimpleUI是一个漂亮的开源后台管理系统框架,提供了众多易于扩展和修改的组件和插件,能够使开发者快速开发高效的后台管理系统。 2. 使用SimpleUI自定义按钮弹窗框示例 在django admin中,我们可以利…

    JavaScript 2023年6月11日
    00
  • js Array.slice的8种不同用法示例

    下面就是关于“js Array.slice的8种不同用法示例”的完整攻略: 什么是Array.slice()方法? Array.slice()方法是一个具有很强实用性的JavaScript数组方法,它可以把数组中的某一部分或全部内容复制到一个新数组中。 基本语法 array.slice(start, end) start:必须,整数值。规定从哪里开始选取,如…

    JavaScript 2023年5月27日
    00
  • JavaScript的异步ajax详解

    JavaScript的异步ajax详解 异步请求的概念 异步请求指的是客户端提交请求给后台服务器后,不会一直等待直到服务器响应。而是可以在等待响应的过程中继续进行其他操作。当服务器响应完成后,客户端会立即收到响应并采取相应措施。这样可以有效提升用户体验,提高网站的性能。 ajax简介 ajax(Asynchronous JavaScript and XML)…

    JavaScript 2023年5月27日
    00
  • Vue之mixin全局的用法详解

    Vue之mixin全局的用法详解 1. 概述 Vue中的mixin(混入)机制可以让组件之间的代码可以进行复用,即在多组件中共用同一段代码,而不用把这段代码写在多个组件里。这对于代码复用、减少冗余代码是一个非常好的解决方案。mixin可以理解为是一种能够让我们将组件的一部分功能提取出来,并进行重复利用的机制。 2. 语法 下面是mixin的语法: var m…

    JavaScript 2023年6月11日
    00
  • 纯js网页画板(Graphics)类简介及实现代码

    那么我们来详细讲解一下“纯js网页画板(Graphics)类简介及实现代码”的攻略。 简介 Graphics 类是一个封装了浏览器 Canvas 的工具类,它提供了一些方法,使用户能够在 Canvas 上进行绘图。 实现代码 初始化 首先,我们要定义一个 Graphics 类,可以使用 ES6 的类语法来实现: class Graphics { constr…

    JavaScript 2023年6月10日
    00
  • 详解JavaScript编程中正则表达式的使用

    详解JavaScript编程中正则表达式的使用 正则表达式是指用来匹配字符组成的一种模式。在JavaScript编程中,正则表达式被广泛应用于对文本数据的处理。本文将详细讲解JavaScript编程中正则表达式的使用,帮助读者掌握相关知识。 正则表达式的基础语法 正则表达式的基础语法是由若干个字符和特殊字符组成的模式,用于对文本进行匹配和处理。一些常用的正则…

    JavaScript 2023年6月10日
    00
  • js前端面试之同步与异步问题详解

    JS前端面试之同步与异步问题详解攻略 1. 同步与异步的概念 同步和异步都是指程序的执行方式,它们的区别在于程序执行完成的时间点不同。同步是指代码按照顺序一行一行地执行,需要等待前面的代码执行完成后才会执行后面的代码。而异步则是指代码不需要按照顺序执行,可以在后台继续执行其他代码,当前面的代码执行完成后再回来执行后面的代码。 2. 同步与异步的应用场景 同步…

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