今天我们来做一个比较简单的JS点名效果,先把HTML和css给准备好,然后我们开始写JS结构
HTML
<h2>随机点名</h2>
<div class="box">
<span>名字是:</span>
<div class="qs">这里显示姓名</div>
</div>
<div class="btns">
<button class="start">开始</button>
<button class="end">结束</button>
</div>
CSS
* {
margin: 0;
padding: 0;
}
h2 {
text-align: center;
}
.box {
width: 600px;
margin: 50px auto;
display: flex;
font-size: 25px;
line-height: 40px;
}
.qs {
width: 450px;
height: 40px;
color: red;
}
.btns {
text-align: center;
}
.btns button {
width: 120px;
height: 35px;
margin: 0 50px;
}
JS结构首先分析点名事件三个事情,第一个是事件源,第二个点击事件的程序
第三个就是事件的结果
首先我们需要定义一个数组
比如我这里定义五个数组
const arr = ['马超', '黄忠', '赵云', '关羽', '张飞']
然后第一步我们开始模块按钮
首先我们需要获取两个按钮,一个开始,一个结束
const qs=document.querySelector('.qs')
const start=document.querySelector('.start')
然后我们获取开始按钮对象
addEventListene是监听事件的按钮,然后后面的click是事件,就是点击这个按钮就会执行下面的随机数的方法
这里我们在这里写一个timeid是指这个事件的按钮,所以我们要在首页去定义二个变量
let random=0
let timerId=0
start.addEventListener('click',function(){
timerId=setInterval(function(){
random=parseInt(Math.random()*arr.length)
qs.innerHTML=arr[random]
}, 35)
第二步就是关闭按钮,我们筛选完之后需要关闭然后删除抽取的元素
const end=document.querySelector('.end')
end.addEventListener('click',function(){
clearInterval(timerId)
//结束了,删掉当前抽取的元素
arr.splice(random,1)
console.log(arr)
arr.splice(random,1):意思就是这个事件结束了删掉这个随机数的一个元素
clearInterva:关闭定时器的意思,因为我们做一个点名事件是需要通过定时器来完成,这里的意思是停止的意思
最后我们在加一个步骤
if(arr.length===1){
start.disabled=end.disabled=true
}
这里的意思是这个素组如果只剩下一个元素,那么就会禁用开始和停止这两个按钮,如果换是flase就可以继续使用文章来源:https://www.toymoban.com/news/detail-473622.html
接下来是源码文章来源地址https://www.toymoban.com/news/detail-473622.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}
h2 {
text-align: center;
}
.box {
width: 600px;
margin: 50px auto;
display: flex;
font-size: 25px;
line-height: 40px;
}
.qs {
width: 450px;
height: 40px;
color: red;
}
.btns {
text-align: center;
}
.btns button {
width: 120px;
height: 35px;
margin: 0 50px;
}
</style>
</head>
<body>
<h2>随机点名</h2>
<div class="box">
<span>名字是:</span>
<div class="qs">这里显示姓名</div>
</div>
<div class="btns">
<button class="start">开始</button>
<button class="end">结束</button>
</div>
<script>
// 数据数组
let random=0
let timerId=0
const arr = ['马超', '黄忠', '赵云', '关羽', '张飞']
//业务1开始模块按钮
const qs=document.querySelector('.qs')
const start=document.querySelector('.start')
//1.1获取开始按钮对象
start.addEventListener('click',function(){
//1.获取随机数
timerId=setInterval(function(){
random=parseInt(Math.random()*arr.length)
qs.innerHTML=arr[random]
}, 35)
if(arr.length===1){
start.disabled=end.disabled=true
}
})
//2.关闭按钮
const end=document.querySelector('.end')
end.addEventListener('click',function(){
clearInterval(timerId)
//结束了,删掉当前抽取的元素
arr.splice(random,1)
console.log(arr)
})
</script>
</body>
</html>
到了这里,关于使用JS来实现随机点名的效果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!