jQuery实现转动随机数抽奖效果的方法


Posted in Javascript onMay 21, 2015

本文实例讲述了jQuery实现转动随机数抽奖效果的方法。分享给大家供大家参考。具体实现方法如下:

<!Doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<script src="jquery-1.6.2.min.js" type="text/javascript"></script>
<style type="text/css">
body,h1,h2,h3,h4,h5,h6,p,ul,ol,li,form,img,dl,dt,dd,table,th,td,blockquote,fieldset,div,strong,label,em 
{margin:0;padding:0;border:0;}
ul,ol,li{list-style:none;}
input,button{margin:0;font-size:12px;vertical-align:middle;}
body{font-size:12px;font-family:Arial, Helvetica, sans-serif; text-align:center; margin:0 auto; background:url 
(../images/BG.jpg) repeat-y;}
table{border-collapse:collapse;border-spacing:0;}
.box{ padding:9px 0 0 11px; width:759px; height:611px; background:#ccc; margin:20px auto; }
.inbox{ width:751px; height:596px;position:relative;}
#random_box li{ position:absolute; width:144px; overflow:hidden; height:144px; border:3px solid #c7c5ca; background:#fff;}
#random_box li img{ width:144px; display:block; height:144px;}
.ok{ display:block; width:442px; height:294px; background:#c00; color:#fff; font-size:48px; position:absolute; top:149px; 
left:148px; cursor:pointer; text-align:center; line-height:280px;}
#random_1{ left:0; top:0;}
#random_2{ left:148px;top:0;}
#random_3{ left:296px;top:0;}
#random_4{ left:444px;top:0;}
#random_5{ left:592px;top:0; }
#random_6{ left:592px;top:148px;}
#random_7{ left:592px; top:298px;}
#random_8{ left:592px; top:446px;}
#random_9{ left:444px; top:446px;}
#random_10{ left:296px; top:446px;}
#random_11{ left:148px; top:446px;}
#random_12{ left:0; top:446px;}
#random_13{ left:0; top:298px;}
#random_14{ left:0; top:148px;}
#random_box li.random_current{border:1px solid red;}
</style>
</head>
<body>
<div class="box">
<div class="inbox">
<ul id="random_box">
<li id="random_1">1</li>
<li id="random_2">2</li>
<li id="random_3">3</li>
<li id="random_4">4</li>
<li id="random_5">5</li>
<li id="random_6">6</li>
<li id="random_7">7</li>
<li id="random_8">8</li>
<li id="random_9">9</li>
<li id="random_10">10</li>
<li id="random_11">11</li>
<li id="random_12">12</li>
<li id="random_13">13</li>
<li id="random_14">14</li> 
</ul>
<b class="ok" onClick="StartGame()">抽奖</b>
</div>
</div>
<script>
var index=1, //当前亮区位置
prevIndex=14, //前一位置
Speed=300, //初始速度
Time, //定义对象
arr_length = 14; //GetSide(5,5), //初始化数组
EndIndex=1, //决定在哪一格变慢
cycle=0, //转动圈数 
EndCycle=3, //计算圈数
flag=false, //结束转动标志
random_num=1, //中奖数
quick=0; //加速
function StartGame(){
$("#random_box li").removeClass("random_current"); //取消选中
//random_num = parseInt($("#txtnum").val());//
random_num = Math.floor(Math.random()*13+2);
//产出随机中奖数2--12之间
index=1; //再来一次,从1开始
cycle=0;
flag=false;
//EndIndex=Math.floor(Math.random()*12);
if(random_num>5) {
EndIndex = random_num - 5; //前5格开始变慢
} else {
EndIndex = random_num + 14 - 5; //前5格开始变慢
}
//EndCycle=Math.floor(Math.random()*3);
Time = setInterval(Star,Speed);
}
function Star(num){
//跑马灯变速
if(flag==false){
//走五格开始加速
if(quick==5){
clearInterval(Time);
Speed=50;
Time=setInterval(Star,Speed);
}
//跑N圈减速
if(cycle==EndCycle+1 && index-1==EndIndex){
clearInterval(Time);
Speed=300;
flag=true; //触发结束
Time=setInterval(Star,Speed);
}
}
if(index>arr_length){
index=1;
cycle++;
}
//结束转动并选中号码
if(flag==true && index==parseInt(random_num)){ 
quick=0;
clearInterval(Time);
}
$("#random_"+index).addClass('random_current');
//设置当前选中样式
if(index>1)
prevIndex=index-1;
else{
prevIndex=arr_length;
}
$("#random_"+prevIndex).removeClass('random_current');
//取消上次选择样式 
index++;
quick++;
}
</script>
</body>
</html>

希望本文所述对大家的jQuery程序设计有所帮助。

Javascript 相关文章推荐
JavaScript判断一个URL链接是否有效的实现方法
Oct 08 Javascript
jqgrid 表格数据导出实例
Nov 21 Javascript
JS中getYear()和getFullYear()区别分析
Jul 04 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
Feb 09 Javascript
微信小程序 跳转方式总结
Apr 20 Javascript
jquery实现侧边栏左右伸缩效果的示例
Dec 19 jQuery
JavaScript的Object.defineProperty详解
Jul 09 Javascript
node.js读取Excel数据(下载图片)的方法示例
Aug 02 Javascript
微信小程序新手教程之页面打开数量限制
Mar 03 Javascript
微信小程序通过websocket实时语音识别的实现代码
Aug 19 Javascript
JavaScript实现淘宝商品图切换效果
Apr 29 Javascript
Vue3中的Refs和Ref详情
Nov 11 Vue.js
JQuery分屏指示器图片轮换效果实例
May 21 #Javascript
jQuery聚合函数实例
May 21 #Javascript
js获取页面description的方法
May 21 #Javascript
js同源策略详解
May 21 #Javascript
js设置document.domain实现跨域的注意点分析
May 21 #Javascript
jQuery+ajax实现无刷新级联菜单示例
May 21 #Javascript
jQuery插件expander实现图片翻转特效
May 21 #Javascript
You might like
第十节 抽象方法和抽象类 [10]
2006/10/09 PHP
PHP中集成PayPal标准支付的实现方法分享
2012/02/06 PHP
PHP对文件夹递归执行chmod命令的方法
2015/06/19 PHP
yum命令安装php7和相关扩展
2016/07/04 PHP
php redis实现文章发布系统(用户投票系统)
2017/03/04 PHP
使用jQuery模板来展现json数据的代码
2010/10/22 Javascript
客户端限制只能上传jpg格式图片的js代码
2010/12/09 Javascript
分享27款非常棒的jQuery 表单插件
2011/03/28 Javascript
JS,Jquery获取select,dropdownlist,checkbox下拉列表框的值(示例代码)
2014/01/11 Javascript
JavaScript实现的石头剪刀布游戏源码分享
2014/08/22 Javascript
JS中Json数据的处理和解析JSON数据的方法详解
2016/06/29 Javascript
浅谈js内置对象Math的属性和方法(推荐)
2016/09/19 Javascript
微信小程序图表插件(wx-charts)实例代码
2017/01/17 Javascript
JS将unicode码转中文方法
2017/05/08 Javascript
详解AngularJs路由之Ui-router-resolve(预加载)
2017/06/13 Javascript
jQuery EasyUI开发技巧总结
2017/09/26 jQuery
基于vue监听滚动事件实现锚点链接平滑滚动的方法
2018/01/17 Javascript
react 移动端实现列表左滑删除的示例代码
2019/07/04 Javascript
node获取客户端ip功能简单示例
2019/08/24 Javascript
javascript实现留言板功能
2020/02/08 Javascript
vue中el-input绑定键盘按键(按键修饰符)
2020/07/22 Javascript
Vite和Vue CLI的优劣
2021/01/30 Vue.js
Python深入学习之闭包
2014/08/31 Python
Python中的defaultdict模块和namedtuple模块的简单入门指南
2015/04/01 Python
Python设计模式之门面模式简单示例
2018/01/09 Python
Python实现的多叉树寻找最短路径算法示例
2018/07/30 Python
详解Python requests 超时和重试的方法
2018/12/18 Python
代码详解django中数据库设置
2019/01/28 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
2021/02/25 Python
HTML5制作表格样式
2016/11/15 HTML / CSS
马德里竞技官方网上商店:Atletico Madrid Shop
2019/03/31 全球购物
办理护照介绍信
2014/01/16 职场文书
道路建设实施方案
2014/03/18 职场文书
计算机应用专业自荐信
2014/07/05 职场文书
毕业实习自我鉴定范文2014
2014/09/26 职场文书
教师理论学习心得体会
2016/01/21 职场文书