先看看效果图


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


&spm=1001.2101.3001.5002&articleId=127233620&d=1&t=3&u=8d9d2b4bba434352931eeb35271e9135)
6791

被折叠的 条评论
为什么被折叠?



