可控制的抽奖模拟系统(利用setInterval)

通过学习Math.random函数,作者实现了一个可控制的抽奖箱程序。该程序使用HTML、CSS和JavaScript编写,能够模拟真实抽奖场景,支持开始和结束按钮控制随机数字滚动,并记录获奖编号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自学到现在也有接近一个月了
刚好学到了Math.random,就想着这种随机数可以模拟抽奖箱,想着做一个当做自己的第一个项目(→ →小声喃喃)
网上有一位兄台做的抽奖箱是10秒一次输出结果,其中过程无法自控。因此在他的一些启发下,我也制作了自己的抽奖箱。

<!DOCTYPE html>
<html>
    <head lang="en">
        <meta charset="UTF-8">
        <mata http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <title>抽奖箱子</title>
        <style type="text/css">
            #boxer{
                border: 5px solid aqua;
                border-radius: 20px;
                width: 500px;
                font-size: 100px;
                text-align: center;
            }
            #but1{
                position: relative;
                left: 200px;
                top: 10px;
            }
        </style>
    </head>
    <body "oneHundry()">
        <div id="boxer">Go!</div>
        <div id="but1">
            <input type="button" value="开始" "randomNumber();">
            <input type="button" value="结束" "outset();">
        </div><br />
        获奖名单:<div id="list"></div>
        <script>
            var arr = new Array(100);
            function oneHundry(){
                for(var i=0 ; i<100 ;i++){
                    arr[i]=i+1;
                }
            }
            var interset,outset;
            var index;
            function randomNumber(){
                clearInterval(interset);
                interset = setInterval(function(){
                    index = Math.floor(Math.random()*arr.length);
                    document.getElementById("boxer").innerHTML=arr[index];
                },50); 
            }
            function outset(){
                clearInterval(interset);
                document.getElementById("list").innerHTML += arr[index] + "<br />";
                arr.splice(index,1);
            }
        </script>
    </body>
</html>

这个抽奖箱是可控的,按下开始数字开始随机滚动,按下结束键可以停止(clearInterval)并输出结果
考虑到现实生活中把每个人的名字录入太麻烦,我就想着以编号的形式更加方便快捷,
因此利用了最近学习的for循环来创建一个1-100的数组。
如果想覆盖的话可以将+=改为=并去掉

最后的splice是为了删除每一次输出的值,毕竟一个人得无数次就有点不好了→ →

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值