文章目录
- 【JavaScript】定时器详解
 - 一. 定时器分类
 - 二. 定时器的使用
 - 三. 案例:实现抽奖效果
 - 样式一
 - 样式二
 
【JavaScript】定时器详解
一. 定时器分类
-  
延迟定时器
setTimeout(function(){}, 毫秒数)作用:隔一段时间之后执行
 -  
间隔定时器
setInterval(function(){}, 毫秒数)作用:每隔一段时间执行一次
 -  
关闭定时器
clearTimeout(定时器) clearInterval(定时器)注:虽然关闭定时器的方式有两种,且没什么太大的区别,但是还是建议对应着使用。(如:setInterval ==> clearInterval(定时器))
 
二. 定时器的使用
-  
延迟定时器
setTimeout(function () { console.log("执行了。。。"); }, 2000); // 2s 之后,控制台输出:执行了。。。 -  
间隔定时器
setInterval(function () { console.log("执行了..."); }, 2000); -  
关闭定时器
var t1 = setTimeout(function () { console.log("执行了延迟定时器"); }, 1000); clearInterval(t1); // 关闭定时器 
三. 案例:实现抽奖效果
样式一
HTML代码:
<div id="box">开始抽奖</div>
 
CSS代码:
div {
    width: 500px;
    height: 100px;
    border: 2px solid #000;
    margin: 100px auto;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 50px;
}
 
JavaScript代码:
// 奖品
var arr = [
    "皮筋一个",
    "辣条一包",
    "谢谢惠顾",
    "包子一个",
    "卡片一张",
    "发夹一个",
    "手机模型",
    "空头支票",
    "皮球一个",
    "果冻一个"
];
// 随机生成 0~arr.length-1 随机数
function randNum(min, max) {
    return Math.round(Math.random() * (max - min)) + min;
}
// 标记思维
var flag = false;
t = null;
// 点击开始
box.onclick = function() {
    if (!flag) {
        // 每个一段时间进行内容切换
        t = setInterval(function() {
            // 调用生成随机数函数
            var num = randNum(0, arr.length - 1);
            // 将生成的随机数当做数组的索引,显示数组的值
            var res = arr[num];
            // 将对应的值显示到页面中
            box.innerHTML = res;
        }, 100);
        flag = true;
    } else {
        clearInterval(t);
        flag = false;
    }
}
 
效果图:

样式二
HTML代码:
<div id="box">开始抽奖</div>
<button id="btn1">开始</button>
<button id="btn2">停止</button>
 
CSS代码:
div {
    width: 500px;
    height: 100px;
    border: 2px solid #000;
    margin: 100px auto;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 50px;
}
body {
    text-align: center;
}
 
JavaScript代码:
// 随机生成 0~arr.length-1 随机数
function randNum(min, max) {
    return Math.round(Math.random() * (max - min)) + min;
}
// 奖品
var arr = [
    "皮筋一个",
    "辣条一包",
    "谢谢惠顾",
    "包子一个",
    "卡片一张",
    "发夹一个",
    "手机模型",
    "空头支票",
    "皮球一个",
    "果冻一个"
];
// 随机生成 0~arr.length-1 随机数
function randNum(min, max) {
    return Math.round(Math.random() * (max - min)) + min;
}
t = null;
// 点击开始
btn1.onclick = function() {
    // 防止点击开始重复触发
    if (t) {
        return;
    }
    // 每个一段时间进行内容切换
    t = setInterval(function() {
        // 调用生成随机数函数
        var num = randNum(0, arr.length - 1);
        // 将生成的随机数当做数组的索引,显示数组的值
        var res = arr[num];
        // 将对应的值显示到页面中
        box.innerHTML = res;
    }, 100);
}
btn2.onclick = function() {
    clearInterval(t);
    t = null;
}
 
效果图:






![[从零开始]用python制作识图翻译器·一](https://img-blog.csdnimg.cn/95f3b38473e14a2eb54b290773a95eef.gif)

![Azure 深入浅出[3]: 如何在MS Visio里面画专业的Azure技术架构图?](https://img-blog.csdnimg.cn/71b9737f0a0743eb83699132587761ba.png)











