千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:大连千锋IT培训  >  技术干货  >  JavaScript全解析——案例-验证码按钮倒计时

JavaScript全解析——案例-验证码按钮倒计时

来源:千锋教育
发布人:bjq
时间: 2023-05-18 11:08:03

  JavaScript全解析——案例-验证码按钮倒计时

JavaScript全解析

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
#box {
width: 300px;
height: 60px;
background-color: #fff;
font-size: 30px;
}
</style>
</head>

<body>
<button id="box">获取验证码</button>
<script>
/*
上午作业 案例 - 模拟点击获取验证码按钮

分析:
=> 要点击获取 首先是有一个能点击的事件
=> 我们知道验证码的都是一个倒计时样式的 到了时间没有完成就需要从新点击发送
=> 所以我们需要一个定时器 (反复性定时器)
=> 我们还需要设定一个时间 就是多长时间以后要重新点击

问题:
=> 我们发现如果我们不断的点击以后会出现时间重叠的现象
=> 这是因为我的一次执行还没有完全结束就开始了第二次的执行,
=> 这样就有了在某个时间内有多个要执行的程序
=> 这样就会导致我们的点击已经结束了还有多次要执行的程序在执行
解决方案:
=> 我们是不是可以给这个程序加一个开关
=> 一开始我们点击的时候让开关打开
=> 等我们的程序在执行的时候不允许再有点击的行为
=> 只能等的我这一次的行为执行完了以后才可以执行下次的点击
*/

// 在我们点击之前先设置一个开关
var flag = true
box.onclick = function () {
// 当程序执行的时候我们要看一下开关的状态
if (flag === false) return
// 我们关闭我们的开关
flag = false
// console.log(111);
// 设定完成事件
var count = 5
// 设定定时器
var t1 = setInterval(function () {
// 开启定时器我们是不是要让让我们设定的时间走起来
count--
// 我们的时候开始走的时候我们的显示内容是不是也要变换
box.innerText = `${count}后重新获取`
// 我们发现定时器一直在走 是不是要在一个时间以后就不能再走
if (count < 0) {
clearInterval(t1)
box.innerText = '获取验证码'
flag = true
}
}, 1000)
}
</script>
</body>

</html>

 

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

什么叫做全局执行上下文?

2023-05-25

Redis的八大特性有哪些?

2023-05-11

Redis应用场景有哪些?

2023-05-11

最新文章NEW

hooks模仿componentDidMount是什么

2023-05-18

JavaScript全解析——数据操作是什么

2023-05-11

createSelector的使用场景有哪些?

2023-04-25

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>