点名器

点名器的思路是随机获取到指定数组中的姓名字符串,点击显示框开始随机出现姓名,点击停止按钮时停止并得到随机的姓名 。
随机产生:使用 random 乘以数组长度减一再取整即可得到数组index的随机数。Math.round(Math.random() * (yname.length - 1));
点击开始旧让定时器进行重复循环,快速给出不同的姓名。
停止点名:清除定时器即可
出现的问题:当我们重复点击多次定时器让其开始时发现定时器只能清除一个,所以我们需要每次点击开始按钮都只能执行一次,当flag为true才可以循环,点击后flag为false,无法重复执行即可。
下面时完整的代码:

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        div {
            width: 200px;
            height: 50px;
            font-size: 18;
            font-weight: 900;
            line-height: 50px;
            text-align: center;
            border: 1px solid black;
            border-radius: 10px;
            margin-bottom: 20px;
        }
    </style>
</head>

<body>
    <div>开始点名</div>
    <button>停止点名</button>
    <script>
       var yname = ['胡歌','张杰','刘亦菲','卢本伟','朱迅','蔡徐坤','王嘉儒','杨幂','热巴','娜扎']
       console.log(yname.length);

        var div = document.getElementsByTagName('div')[0];
        var btn = document.getElementsByTagName('button')[0];

        var flag = true;
        //1:开始点名 div随机出现一个人名
        div.onclick = function () {
            if (flag) {
                flag = false;
                //name 是关键字 遍历name
                var timer = setInterval(function () {
                    var random = Math.round(Math.random() * (yname.length - 1));
                    console.log(yname.length-1);
                    
                    div.innerHTML = yname[random];
                    console.log(div.innerHTML);                        
                }, 20)


                btn.onclick = function () {
                    //停止及计时器
                    console.log(timer);
                    clearInterval(timer);
                     flag = true;
                }
               
            }

        }

    </script>

    <!-- <script>
            var cname = ['董志蒙','张海峰','张耀','卢本伟','朱成','蔡徐坤','王嘉儒','陈杰','杨玉钏','汪鑫']
           
            
            var div = document.getElementsByTagName('div')[0]
            var btn = document.getElementsByTagName('button')[0]
             var flag = true
            // 1: 点击 开始点名,div中随机出现一个人名
            div.onclick = function(){
                if(flag){
                    flag = false
                     // timer 作用 setInterval执行次数的识别数 1 2 3 .。。表示执行次数
                var timer = setInterval(function(){
                    // name关键字  遍历cname 数组
                    var random = Math.round(Math.random()*(cname.length-1))
                                      
                   cname.forEach(function(item,index){
                   // 显示随机获取的随机名字
                    div.innerHTML = cname[random]   
                    });
                },10)
                btn.onclick = function(){
                    // 添加这个永远为谢谢惠顾
                    // div.innerHTML = '谢谢惠顾'
                    // 停止计时器
                 clearInterval(timer)
                 flag = true
            }
                }
               
            }
           
            </script> -->

</body>

</html>
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值