12-BOM-使用 js 定时器实现倒计时功能

可以使用定时器 setInterval() 或 setTimeout() 来实现倒计时功能。这两个方法的作用类似,都用于周期性地调用函数。

下面是一个实现倒计时十秒的例子:

<!DOCTYPE html>
<html>
<head>
	<title>倒计时</title>
	<meta charset="UTF-8">
</head>
<body>
    <h1 id="countdown">倒计时:--:--:--</h1>

    <!-- 使用 script 标签嵌入 JavaScript 代码 -->
    <script>
        // 倒计时的总秒数
        var countdownSeconds = 600; // 10分钟

        // 使用 setInterval 函数设置定时器
        var countdownInterval = setInterval(function() {
            // 计算剩余的时间
            var hours = Math.floor(countdownSeconds / 3600);
            var minutes = Math.floor((countdownSeconds % 3600) / 60);
            var seconds = countdownSeconds % 60;

            // 更新倒计时显示
            document.getElementById("countdown").innerHTML = "倒计时:" + hours + ":" + 
            (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds < 10 ? "0" + seconds : seconds);

            // 将剩余的时间减少1秒
            countdownSeconds--;

            // 如果倒计时结束,清除定时器
            if (countdownSeconds < 0) {
                clearInterval(countdownInterval); // 清除定时器
                alert("倒计时结束!"); // 弹出提示框
            }
        }, 1000); // 每秒钟执行一次
    </script>
</body>
</html>

1、var countdownSeconds = 600;

      这行代码定义了倒计时的总秒数,这里设置为600秒,即10分钟。

2、var countdownInterval = setInterval(function() { ... }, 1000);

       这行代码使用 setInterval 函数创建了一个每秒钟执行一次的定时器,并将返回的定时器 ID 保存在 countdownInterval 变量中。其中,setInterval 函数的第一个参数是要执行的函数,这里使用了一个匿名函数(被花括号包裹的代码块),用于更新倒计时和判断是否结束;第二个参数是时间间隔,这里设置为1000毫秒,即1秒钟。

3、var hours = Math.floor(countdownSeconds / 3600); ...

       这一段代码计算出当前剩余的小时数、分钟数和秒数,用于更新倒计时的显示。其中,Math.floor 函数用于向下取整,可以将小数部分舍去,只留整数部分。对于分钟数和秒数,使用了模运算 % 和除法 / 计算。

4、document.getElementById("countdown").innerHTML = "倒计时:" + hours + ":" + ...

       这行代码使用 document.getElementById 函数获取到 id 为 countdown 的元素,并将其内容更新为新的倒计时字符串。这个字符串由固定的前缀文本“倒计时:”和计算出来的小时数、分钟数、秒数等拼接而成。字符串中的三元运算符 ?: 用于判断是否需要在分钟数或秒数前添加一个“0”,以保证显示的时间格式正确。

5、countdownSeconds--;

       这行代码将剩余的秒数减1,相当于每秒钟更新一次倒计时。

6、if (countdownSeconds < 0) { ... }

       这行代码检查当前的倒计时是否已经结束,如果结束则清除定时器并弹出一个提示框。其中,clearInterval 函数用于清除定时器,需要传入之前保存的定时器 ID。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值