本小程序涉及JS知识点
定时器,回调函数,onclick点击事件绑定元素,选择器方式获取元素…
<!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>
.box {
width: 400px;
margin: 100px auto;
}
.content {
text-align: center;
line-height: 100px;
font-size: 40px;
color: tomato;
border: 1px solid rgb(205, 138, 50);
border-bottom: 0;
}
.box button {
width: 100%;
padding: 20px;
border: 1px solid #ccc;
background-color: rgb(82, 83, 170);
font-size: 35px;
outline: none;
}
</style>
</head>
<body>
<div class="box">
<h2>谷阳北路全家咖啡饮料抽奖活动!</h2>
<div class="content">原味拿铁</div>
<button>开始</button>
</div>
<script>
// 获取到button元素
var btn = document.querySelector('.box button')
// 获取content元素
var contentnode = document.querySelector('.content')
// 创建数组
var nameList = ['香草拿铁', '美式', '焦糖', '蜂蜜柚子', '橙子', '纯牛奶', '红牛', '元气森林']
// 声明定时器标记,默认是停止状态
var intervalID = null;//还没有点击之前,“开始”其实是停止状态
// 给元素绑定事件,点击开始按钮触发事件,就调用回调函数。
btn.onclick = function () {
// 判断此刻定时器是否开启
if (intervalID) {//定时器是开启状态
// 按钮文字改回来
btn.innerHTML = '开始';
// 清除定时器(为什么?)
clearInterval(intervalID)
// 定时标记变量变化
intervalID = null;
} else {//定时器是关闭状态
// 修改按钮文字
btn.innerHTML = '停止';
// 开启定时器(非常重要一环,为什么要在这里开?)
intervalID = setInterval(function () {
// 取随机数作为数组元素索引
var index = Math.floor(Math.random() * nameList.length);
// 根据随机的索引从数组中 获取元素
contentnode.innerHTML = nameList[index]
},100)
console.log(intervalID)
}
}
</script>
</body>
</html>