js抽卡抽奖模拟器(只实现基础功能)

本文介绍了如何使用JavaScript创建一个基础的抽奖模拟器,奖池包含0-99的数字,其中0和1代表SSR奖品,2-11为SR奖品,其余为R奖品。通过点击事件生成随机数并判断奖项,抽中SSR时显示中奖提示。此外,还讨论了十连抽的实现以及SR卡的判定方法。示例代码包括CSS、HTML和JS部分,适合初学者练习。

先看看效果图

 

 

规则:奖池有0~99这100个数,0为SSR的up卡(更厉害的奖),1为 SSR的卡,2~11这11个为SR卡,剩余的为R卡。

整体思路:

1.利用js的绑定点击事件进行math.floor的随机数生成然后进行数字匹配

2.当抽中SSR时候弹出框恭喜中奖框

3.通过innerHTML对文本数据进行修改

十连抽卡思路:

利用for循环10次

SR卡判定思路:

由于作为0,1的SSR卡之前已经用if筛除,所以sr卡是2~11,所以说用当前数字减去11,当结果小于等于0那么必定是SR卡

下面为代码部分

 这个可以自己看着做一下,用到的都是很基础的知识,也可以按自己的喜好进行调节

 

CSS部分:

 .numbox {
            width: 50vw;
            height: 200px;
            background-color: aquamarine;
            margin: 0 auto;
            display: flex;
            justify-content: space-between;
            box-sizing: border-box;
        }

        .check {
            width: 20vw;
            height: 50px;
            background-color: beige;
            margin: 0 auto;
            margin-top: 20px;
            display: flex;
            justify-content: space-around;
            align-items: center;

        }
        .line{
            display: flex;
            flex-direction: column;
            justify-content: space-around;
        }
        .diyself{
            width: 30vw;
            height: 150px;
            font-size: 40px;
            text-align: center;
            margin-right: 5vw;
            margin-top: 25px;
            background-color: aqua;
        }

HTML部分:

<div class="numbox">
        <div class="line">
            <div>
                <div>已完成抽卡数:</div>
                <div class="totalnum">0</div>
            </div>

            <div>
                <div>已获得R卡数:</div>
                <div class="Rtotal">0</div>
            </div>

            <div>
                <div>已获得SR卡数:</div>
                <div class="SRtotal">0</div>
            </div>

            <div>
                <div>已获得SSR卡数:</div>
                <div class="SSRtotal">0</div>
            </div>
        </div>
        <div>
            <div class="diyself">配图区域</div>
        </div>
    </div>
    <div class="check">
        <button class="once">抽取1次</button>
        <button class="tenth">抽取10次</button>
    </div>

js部分:

1.进行数据设置与绑定

 //数据连接与创设
        let once = document.querySelector(".once")
        let tenth = document.querySelector(".tenth")

        
        let totalnum = document.querySelector(".totalnum")
        let Rtotal = document.querySelector(".Rtotal")
        let SRtotal = document.querySelector(".SRtotal")
        let SSRtotal = document.querySelector(".SSRtotal")

        let num = 0;
        let Rnum = 0;
        let SRnum = 0;
        let SSRnum = 0;

2.点击事件(单抽)

//单抽
        once.onclick = function () {
            
                let b = Math.floor(Math.random() * 100);

                if (b == 0) {
                    alert("恭喜您于第" + num + "发抽中当期up的SSR角色")
                    SSRnum++;
                    SSRtotal.innerHTML = SSRnum;
                } else if (b == 1) {
                    alert("恭喜您于第" + num + "发抽中非当期up的SSR角色")
                    SSRnum++;
                   SSRtotal.innerHTML = SSRnum;
                } else if (b - 11 <= 0) {
                    SRnum++;
                    SRtotal.innerHTML = SRnum;
                } else {
                    Rnum++;
                    Rtotal.innerHTML = Rnum;
                }
                num++
                totalnum.innerHTML = num;
            
        }

 十连抽

tenth.onclick = function () {
            for (let i = 0; i < 10; i++) {
                let b = Math.floor(Math.random() * 100);

                if (b == 0) {
                    alert("恭喜您于第" + num + "发抽中当期up的SSR角色")
                    SSRnum++;
                    SSRtotal.innerHTML = SSRnum;
                } else if (b == 1) {
                    alert("恭喜您于第" + num + "发抽中非当期up的SSR角色")
                    SSRnum++;
                    SSRtotal.innerHTML = SSRnum;
                } else if (b - 11 <= 0) {
                    SRnum++;
                    SRtotal.innerHTML = SRnum;
                } else {
                    Rnum++;
                    Rtotal.innerHTML = Rnum;
                }
                num++
                totalnum.innerHTML = num;
            }
        }

 

 完整代码

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

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>抽卡</title>
    <style>
        .numbox {
            width: 50vw;
            height: 200px;
            background-color: aquamarine;
            margin: 0 auto;
            display: flex;
            justify-content: space-between;
            box-sizing: border-box;
        }

        .check {
            width: 20vw;
            height: 50px;
            background-color: beige;
            margin: 0 auto;
            margin-top: 20px;
            display: flex;
            justify-content: space-around;
            align-items: center;

        }
        .line{
            display: flex;
            flex-direction: column;
            justify-content: space-around;
        }
        .diyself{
            width: 30vw;
            height: 150px;
            font-size: 40px;
            text-align: center;
            margin-right: 5vw;
            margin-top: 25px;
            background-color: aqua;
        }

    </style>
</head>

<body>
    <div class="numbox">
        <div class="line">
            <div>
                <div>已完成抽卡数:</div>
                <div class="totalnum">0</div>
            </div>

            <div>
                <div>已获得R卡数:</div>
                <div class="Rtotal">0</div>
            </div>

            <div>
                <div>已获得SR卡数:</div>
                <div class="SRtotal">0</div>
            </div>

            <div>
                <div>已获得SSR卡数:</div>
                <div class="SSRtotal">0</div>
            </div>
        </div>
        <div>
            <div class="diyself">配图区域</div>
        </div>
    </div>
    <div class="check">
        <button class="once">抽取1次</button>
        <button class="tenth">抽取10次</button>
    </div>

    <script>
        //数据连接与创设
        let once = document.querySelector(".once")
        let tenth = document.querySelector(".tenth")

        
        let totalnum = document.querySelector(".totalnum")
        let Rtotal = document.querySelector(".Rtotal")
        let SRtotal = document.querySelector(".SRtotal")
        let SSRtotal = document.querySelector(".SSRtotal")

        let num = 0;
        let Rnum = 0;
        let SRnum = 0;
        let SSRnum = 0;
       


        //设置点击事件
        //十连抽
        tenth.onclick = function () {
            for (let i = 0; i < 10; i++) {
                let b = Math.floor(Math.random() * 100);

                if (b == 0) {
                    alert("恭喜您于第" + num + "发抽中当期up的SSR角色")
                    SSRnum++;
                    SSRtotal.innerHTML = SSRnum;
                } else if (b == 1) {
                    alert("恭喜您于第" + num + "发抽中非当期up的SSR角色")
                    SSRnum++;
                    SSRtotal.innerHTML = SSRnum;
                } else if (b - 11 <= 0) {
                    SRnum++;
                    SRtotal.innerHTML = SRnum;
                } else {
                    Rnum++;
                    Rtotal.innerHTML = Rnum;
                }
                num++
                totalnum.innerHTML = num;
            }
        }

        //单抽
        once.onclick = function () {
            
                let b = Math.floor(Math.random() * 100);

                if (b == 0) {
                    alert("恭喜您于第" + num + "发抽中当期up的SSR角色")
                    SSRnum++;
                    SSRtotal.innerHTML = SSRnum;
                } else if (b == 1) {
                    alert("恭喜您于第" + num + "发抽中非当期up的SSR角色")
                    SSRnum++;
                    SSRtotal.innerHTML = SSRnum;
                } else if (b - 11 <= 0) {
                    SRnum++;
                    SRtotal.innerHTML = SRnum;
                } else {
                    Rnum++;
                    Rtotal.innerHTML = Rnum;
                }
                num++
                totalnum.innerHTML = num;
            
        }


    </script>
</body>

</html>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值