定时器练习
目标:能够使用定时器函数重复执行代码 定时器函数可以开启和关闭定时器
- 开启定时器
setInterval(函数,间隔时间)
<!-- 作用:每隔一段时间调用这个函数,间隔时间单位是毫秒 -->
举个例子
function repeat() {
console.log(`这是一个函数`)
}
<!-- 间隔一秒执行函数 -->
setInteval(repeat,1000)
- 关闭定时器
let 变量名 = setInterval(函数,间隔时间)
clearInterval(变量名)
一般不会刚创建就停止,而是满足一定条件再停止
案例
需求:现有一条协议,按钮60秒之后才可以点击同意
分析
- 开始先把按钮禁用(disabled 属性)
- 一定要获取元素
- 函数内处理逻辑,秒数开始减减,按钮里面的文字跟着一起变化,如果秒数等于0 停止定时器 里面文字变为’同意‘ 最后按钮。
代码实现
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>标题</title>
</head>
<body>
<textarea name="" id="" cols="30" rows="10">
用户注册协议
欢迎注册成为京东用户!在您注册过程中,您需要完成我们的注册流程并通过点击同意的形式在线签署以下协议,请您务必仔细阅读、充分理解协议中的条款内容后再点击同意(尤其是以粗体或下划线标识的条款,因为这些条款可能会明确您应履行的义务或对您的权利有所限制)。
【请您注意】如果您不同意以下协议全部或任何条款约定,请您停止注册。您停止注册后将仅可以浏览我们的商品信息但无法享受我们的产品或服务。如您按照注册流程提示填写信息,阅读并点击同意上述协议且完成全部注册流程后,即表示您已充分阅读、理解并接受协议的全部内容,并表明您同意我们可以依据协议内容来处理您的个人信息,并同意我们将您的订单信息共享给为完成此订单所必须的第三方合作方(详情查看
</textarea>
<br>
<button class="btn" disabled>我已经阅读用户协议(60)</button>
<script>
const btn = document.querySelector('.btn')
//倒计时
let i = 60
// 开启定时器
let n = setInterval(function() {
i--
btn.innerHTML = `我已经阅读用户协议(${i})`
if (i === 0) {
clearInterval(n)
btn.disabled = false
btn.innerHTML = `同意`
}
}, 1000)
</script>
</body>
</html>