js抽奖(随机抽奖|默认抽奖结果)

js抽奖(随机抽奖|默认抽奖结果)

效果示例图

在这里插入图片描述

代码块

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>抽奖</title>
		<style type="text/css">
			* {
				padding: 0px;
				margin: 0px;
				box-sizing: border-box;
			}

			.luckydraw {
				border: 1px solid red;
				width: 400px;
				height: 400px;
				position: relative;
				margin: 100px auto;
				display: flex;
				flex-wrap: wrap;
			}

			.luckydraw-item {
				border: 1px solid red;
				width: calc(100% / 3);
				height: calc(100% / 3);
				display: flex;
				justify-content: center;
				align-items: center;
				user-select: none;
				font-size: 16px;
			}

			.luckydraw-item:nth-of-type(5) {
				cursor: pointer;
				background-color: #f17070;
				color: #ffffff;
			}

			.current-style {
				background-color: #00a2ef;
				color: #ffffff;
			}
		</style>
	</head>
	<body>
		<div class="luckydraw">
			<div class="luckydraw-item">奖品1</div>
			<div class="luckydraw-item">奖品2</div>
			<div class="luckydraw-item">奖品3</div>
			<div class="luckydraw-item">奖品8</div>
			<div class="luckydraw-item" id="luckydrawBtn">抽奖</div>
			<div class="luckydraw-item">奖品4</div>
			<div class="luckydraw-item">奖品7</div>
			<div class="luckydraw-item">谢谢回顾</div>
			<div class="luckydraw-item">奖品5</div>
		</div>
	</body>
	<script type="text/javascript">
		document.querySelector("#luckydrawBtn").addEventListener("click", () => {
			const circle = getRandomNumber(1, 8); //随机获取1-8之间的数字,数字为多少,多少就中奖
			console.log("[中奖]", circle)
			luckydraw(circle); //设置为6:谢谢回顾
		})

		function luckydraw(index) {
			let time = 100;
			let initCircle = 0;
			const circle = getRandomNumber(3, 6); //旋转多少圈

			let timerHandle = null;
			let count = 0;
			timerHandle = setInterval(function() {
				const luckydraw = [0, 1, 2, 5, 8, 7, 6, 3];
				const active = document.querySelector(".current-style");
				if (active) {
					active.classList.remove("current-style")
				}
				document.querySelectorAll(".luckydraw-item")[luckydraw[count]].classList.add("current-style");
				count++;
				initCircle++;
				if (count >= 8) {
					count = 0;
				}
				if (initCircle >= circle * 8 + index) {
					clearInterval(timerHandle)
				}
			}, time)
		}

		function getRandomNumber(min, max) {
			min = Math.ceil(min);
			max = Math.floor(max);
			return Math.floor(Math.random() * (max - min + 1)) + min; //含最大值,含最小值 
		}
	</script>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值