javascript实现简单倒计时效果

yizhihongxing

下面是“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日

相关文章

  • JS使用tofixed与round处理数据四舍五入的区别

    JS使用toFixed与round处理数据四舍五入的区别 在JavaScript中,我们常常需要对数字数据进行四舍五入的操作。在这种情况下,通常有两个方法来实现此目的,即使用toFixed和round方法。这两种方法在实现上有很大的区别,这篇文章将详细介绍这两种方法的区别以及它们的使用。 关于toFixed方法的介绍 toFixed是JavaScript提供…

    JavaScript 2023年5月28日
    00
  • js异步加载的三种解决方案

    下面开始讲解“js异步加载的三种解决方案”。 异步加载的概念 在前端开发中,为了提高网页加载速度和用户体验,我们常常需要异步加载页面元素或脚本。常见的异步加载方式有三种,分别是:动态添加script标签、使用XMLHttpRequest请求和使用WebWorkers。 动态添加script标签 动态添加script标签是最常用的异步加载方式之一,它的原理是通…

    JavaScript 2023年5月28日
    00
  • 微信小程序+腾讯地图开发实现路径规划绘制

    下面我将详细讲解“微信小程序+腾讯地图开发实现路径规划绘制”的完整攻略。 前提准备 在开始之前,需要完成以下几个步骤: 申请腾讯地图开发者账号,并获取开发者密钥 创建微信小程序项目,并在项目中引入腾讯地图SDK 实现步骤 1. 获取用户位置 在前往目的地前,需要获取用户的当前位置。可以通过微信小程序的 wx.getLocation 接口获取用户当前的经纬度信…

    JavaScript 2023年6月11日
    00
  • 深入理解vue的使用

    深入理解Vue的使用 Vue是一款轻量级、易上手的JavaScript框架,它具有数据双向绑定、组件化、虚拟DOM等功能,被广泛应用于前端开发中。本攻略旨在深入理解Vue的使用,包含以下几个方面的内容: Vue实例的创建与生命周期 数据双向绑定与计算属性 组件化与动态组件 父子组件通信 插槽的使用 vue-router的使用 Vue实例的创建与生命周期 Vu…

    JavaScript 2023年6月11日
    00
  • js replace替换所有匹配的字符串

    下面是详细讲解JS中使用replace()方法替换所有匹配字符串的攻略: 1. replace()方法简介 JavaScript中的replace()方法是一个字符串方法,它用来在字符串中查找子字符串并用新字符串替换它,返回一个新的字符串。replace()方法可以替换字符串中的第一个匹配项,也可以替换所有匹配项。replace()方法有两个参数:第一个参数…

    JavaScript 2023年5月28日
    00
  • 微信小程序 时间格式化(util.formatTime(new Date))详解

    为了实现微信小程序的时间格式化,我们可以使用util.formatTime()函数。这个函数将一个Date对象转换为对应的字符串形式,具体格式化方式由传入的参数进行控制。 以下是“微信小程序 时间格式化(util.formatTime(new Date))详解”攻略的详细实现过程: 1. 引入util模块 在微信小程序中使用util模块需要先引入该模块,使用…

    JavaScript 2023年5月27日
    00
  • JavaScript数组常用方法解析及数组扁平化

    首先我们来分别解析JavaScript数组常用方法和数组扁平化。 Part 1:JavaScript数组常用方法解析 JavaScript数组是一种非常常用的数据类型,有很多常用方法可以操作数组。以下是一些常用方法的详细解析: push():向数组的末尾添加一个元素 语法:array.push(element1, element2, …, element…

    JavaScript 2023年5月27日
    00
  • AutoSave/自动存储功能实现

    AutoSave/自动存储功能是现代网站开发中很常见的功能之一,其主要作用是在用户编辑内容时,自动将内容保存到服务器中,以免出现意外中断导致所做的修改全部丢失。下面我将详细讲解实现AutoSave/自动存储功能的完整攻略,过程中将包含两个示例说明。 实现思路 实现AutoSave/自动存储功能的基本思路包括以下几个步骤: 监听用户在表单中输入的内容; 通过A…

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