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日

相关文章

  • 激活 ActiveX 控件

    激活 ActiveX 控件是通过在 HTML 页面使用OBJECT标签来实现的。下面是激活ActiveX 控件的完整攻略: 第一步:编写 OBJECT 标签 在 HTML 页面中使用 OBJECT 标签来激活 ActiveX 控件 <object id="控件ID" classid="clsid:控件ClassID&quo…

    JavaScript 2023年6月10日
    00
  • javascript中bind函数的作用实例介绍

    JavaScript中bind函数的作用实例介绍 在 JavaScript 中,可以使用 bind() 方法来将一个函数绑定到一个特定的上下文,从而返回一个新的函数,该函数中 this 关键字被绑定到指定的对象上。bind() 方法有很多用途,例如: 将方法绑定到对象上 创建有默认参数的函数 创建函数的柯里化版本 实现延迟执行函数 方法绑定示例 方法绑定是使…

    JavaScript 2023年6月11日
    00
  • JS产生随机数的用法小结

    JS产生随机数的用法小结 在JavaScript中,我们可以使用Math对象的random()方法来产生随机数。random()方法返回一个0到1之间(包括0但不包括1)的随机数。我们可以通过一些数学计算来获得我们需要的随机数。 产生一定范围内的随机整数 我们可以使用下面这个公式来产生一个在指定范围内的随机整数: Math.floor(Math.random…

    JavaScript 2023年5月28日
    00
  • 关于ThinkPhp 框架表单验证及ajax验证问题

    下面是关于ThinkPhp框架表单验证及ajax验证问题的完整攻略。 1. ThinkPhp框架表单验证 1.1 表单验证介绍 ThinkPhp框架提供了表单验证功能,可以对用户提交的表单数据进行验证,保证数据的有效性和安全性。 1.2 表单验证的使用步骤 思路:在控制器中首先实例化验证器类,然后在验证规则和错误提示信息数组中定义验证规则,最后使用check…

    JavaScript 2023年6月10日
    00
  • JS把内容动态插入到DIV的实现方法

    JS把内容动态插入到DIV的实现方法主要基于以下两种方式: 通过innerHTML属性插入HTML内容 如果想要插入一些简单的HTML元素(如文字、图片、列表等),我们可以使用innerHTML属性,将其插入到指定的DIV中。具体实现方法如下: let divElem = document.getElementById("myDiv");…

    JavaScript 2023年6月11日
    00
  • Vue 滚动行为的具体使用方法

    Vue 滚动行为是一种 Vue Router 的功能,它允许在切换视图时添加页面滚动的行为,从而提升用户体验。以下是使用Vue 滚动行为的具体步骤: 步骤1:为Vue Router安装scrollBehavior插件 首先,在 Vue Router 导出的实例中添加 scrollBehavior 对象,该对象表示滚动行为配置: const router = …

    JavaScript 2023年6月11日
    00
  • bootstrap 表单验证使用方法

    为了详细讲解 Bootstrap 表单验证的使用方法,我们需要从以下几个方面来介绍: 引入 Bootstrap 表单验证相关的文件 理解 Bootstrap 表单验证的基本结构 使用 Bootstrap 表单验证的相关属性和方法 示例说明 1.引入 Bootstrap 表单验证相关的文件 首先,我们需要引入 Bootstrap 框架及其相关依赖文件,包括jQ…

    JavaScript 2023年6月10日
    00
  • JavaScript文本特效实例小结【3个示例】

    下面是对于“JavaScript文本特效实例小结【3个示例】”这篇文章的详细攻略。 JavaScript文本特效实例小结【3个示例】 1. 第一个示例 文章中第一个示例是实现一个文本逐字递增效果,代码如下: let speed = 80; // 每个字停顿的时间(ms) let text = ‘Hello World!’; // 需要展示的文本 let co…

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