当前位置: 移动技术网 > IT编程>开发语言>JavaScript > js制作抽奖界面

js制作抽奖界面

2020年09月01日  | 移动技术网IT编程  | 我要评论
在这里插入代码片<!DOCTYPE html><html><head><meta charset="utf-8"><title>抽奖界面</title><link rel="stylesheet" href="./Lottery-interface.css"><!-- <embed src="./officedoyen.mp3" hidden="true" autostart="t
在这里插入代码片
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>抽奖界面</title>
		<link rel="stylesheet" href="./Lottery-interface.css">
		<!-- <embed src="./officedoyen.mp3" hidden="true" autostart="true" loop="true"> -->
	<body>
		<header>
			<div class="top center">
				<div class="left fl">
					<ul>
						<li><a href="../../xiaoxiaomi/主界面.html" target="_blank">返回首页</a></li>
						<li><a href="http://www.mi.com/" target="_blank">小米商城</a></li>
						<li>|</li>
						<li><a href="">MIUI</a></li>
						<li>|</li>
						<li><a href="">米聊</a></li>
						<li>|</li>
						<li><a href="">游戏</a></li>
						<li>|</li>
						<li><a href="">多看阅读</a></li>
						<li>|</li>
						<li><a href="">云服务</a></li>
						<li>|</li>
						<li><a href="">金融</a></li>
						<li>|</li>
						<li><a href="">小米商城移动版</a></li>
						<li>|</li>
						<li><a href="">问题反馈</a></li>
						<li>|</li>
						<li><a href="">Select Region</a></li>
						<div class="clear"></div>
					</ul>
				</div>
				<div class="right fr">
					<div class="gouwuche fr"><a href="">购物车</a></div>
					<div class="fr">
						<ul>
							<li><a href="./login.html" target="_blank">登录</a></li>
							<li>|</li>
							<li><a href="./register.html" target="_blank" >注册</a></li>
							<li>|</li>
							<li><a href="">消息通知</a></li>
						</ul>
					</div>
					<div class="clear"></div>
				</div>
				<div class="clear"></div>
			</div>
		</header>
		<div class="letter"><img src="../image/letter.png"></div>
		<div id="lottery">
			<table border="1" cellpadding="0" cellspacing="0" bordercolor="#F72411">
				<tr>
					<td class="table-cell-1 lottery-unit lottery-unit-0">
						<img src="../image/img01.png">
						<div class="mask"></div>
					</td>
					<td class="table-cell-2 lottery-unit lottery-unit-1">
						<img src="../image/gift7.jpg">
						<div class="mask"></div>
					</td>
					<td class="table-cell-1 lottery-unit lottery-unit-2">
						<img src="../image/img02.png">
						<div class="mask"></div>
					</td>		
				</tr>
				<tr>
					<td class="table-cell-2 lottery-unit lottery-unit-7">
						<img src="../image/gift4.jpg">
						<div class="mask"></div>
					</td>
					<td><a href="#" class="draw"></a></td>
					<td class="table-cell-2 lottery-unit lottery-unit-3">
						<img src="../image/gift6.jpg">
						<div class="mask"></div>
					</td>
				</tr>
				<tr>
					<td class="table-cell-1 lottery-unit lottery-unit-6">
						<img src="../image/img03.png">
						<div class="mask"></div>
					</td>
					<td class="table-cell-2 lottery-unit lottery-unit-5">
						<img src="../image/gift7.jpg">
						<div class="mask"></div>
						</td>
					<td class="table-cell-1 lottery-unit lottery-unit-4">
						<img src="../image/img04.png">
						<div class="mask"></div>
					</td>
				</tr>
			</table>
		</div>
		<embed src="./officedoyen.mp3" hidden="true" autostart="true" loop="true">
		<script src="../js/jquery-latest.js"></script>
		<script type="text/javascript">
			var lottery={
				index:-1,    //当前转动到哪个位置,起点位置
				count:0,    //总共有多少个位置
				timer:0,    //setTimeout的ID,用clearTimeout清除
				speed:20,    //初始转动速度
				times:0,    //转动次数
				cycle:50,    //转动基本次数:即至少需要转动多少次再进入抽奖环节
				prize:-1,    //中奖位置
				init:function(id){
					if ($("#"+id).find(".lottery-unit").length>0) {
						$lottery = $("#"+id);
						$units = $lottery.find(".lottery-unit");
						this.obj = $lottery;
						this.count = $units.length;
						$lottery.find(".lottery-unit-"+this.index).addClass("active");
					};
				},
				roll:function(){
					var index = this.index;
					var count = this.count;
					var lottery = this.obj;
					$(lottery).find(".lottery-unit-"+index).removeClass("active");
					index += 1;
					if (index>count-1) {
						index = 0;
					};
					$(lottery).find(".lottery-unit-"+index).addClass("active");
					this.index=index;
					return false;
				},
				stop:function(index){
					this.prize=index;
					return false;
				}
			};
			
			function roll(){
				lottery.times += 1;
				lottery.roll();//转动过程调用的是lottery的roll方法,这里是第一次调用初始化
				if (lottery.times > lottery.cycle+10 && lottery.prize==lottery.index) {
					clearTimeout(lottery.timer);
					lottery.prize=-1;
					lottery.times=0;
					click=false;
				}else{
					if (lottery.times<lottery.cycle) {
						lottery.speed -= 10;
					}else if(lottery.times==lottery.cycle) {
						var index = Math.random()*(lottery.count)|0;//中奖物品通过一个随机数生成
						lottery.prize = index;        
					}else{
						if (lottery.times > lottery.cycle+10 && ((lottery.prize==0 && lottery.index==7) || lottery.prize==lottery.index+1)) {
							lottery.speed += 110;
						}else{
							lottery.speed += 20;
						}
					}
					if (lottery.speed<40) {
						lottery.speed=40;
					};
					//console.log(lottery.times+'^^^^^^'+lottery.speed+'^^^^^^^'+lottery.prize);
					lottery.timer = setTimeout(roll,lottery.speed);//循环调用
				}
				return false;
			}
			
			var click=false;
			
			window.οnlοad=function(){
				lottery.init('lottery');
				$("#lottery a").click(function(){
					if (click) {//click控制一次抽奖过程中不能重复点击抽奖按钮,后面的点击不响应
						return false;
					}else{
						lottery.speed=100;
						roll();    //转圈过程不响应click事件,会将click置为false
						click=true; //一次抽奖完成后,设置click为true,可继续抽奖
						return false;
					}
				});
			};
		</script>
	</body>
</html>

主要使用计时器事件来控制抽奖页面的时间。采用表格或画布布局均可。
在这里插入图片描述

本文地址:https://blog.csdn.net/wyhcczz/article/details/108559543

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网