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 相关文章推荐
基于Unit PNG Fix.js有时候在ie6下不正常的解决办法
Jun 26 Javascript
使用jsonp完美解决跨域问题
Nov 27 Javascript
jQuery源码解读之removeClass()方法分析
Feb 20 Javascript
简单谈谈json跨域
Mar 13 Javascript
详解AngularJS 模态对话框
Apr 07 Javascript
JavaScript函数中关于valueOf和toString的理解
Jun 14 Javascript
JS正则表达式学习之贪婪和非贪婪模式实例总结
Dec 26 Javascript
vue.js 实现点击展开收起动画效果
Jul 07 Javascript
js变量值传到php过程详解 将php解析成数据
Jun 26 Javascript
js模拟F11页面全屏显示
Sep 17 Javascript
微信用户访问小程序的登录过程详解
Sep 20 Javascript
解决vue+ element ui 表单验证有值但验证失败问题
Jan 16 Javascript
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
PHP编码规范-php coding standard
2007/03/16 PHP
php操作mysqli(示例代码)
2013/10/28 PHP
PHP创建桌面快捷方式的实例代码
2014/02/17 PHP
php中file_get_content 和curl以及fopen 效率分析
2014/09/19 PHP
PHP实现多文件上传的方法
2015/07/08 PHP
PHP实现加密文本文件并限制特定页面的存取的效果
2016/10/21 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
tp5(thinkPHP5)框架连接数据库的方法示例
2018/12/24 PHP
PDO::setAttribute讲解
2019/01/29 PHP
用js实现的抽象CSS圆角效果!!
2007/05/03 Javascript
javascript setAttribute, getAttribute 在不同浏览器上的不同表现
2010/08/05 Javascript
JavaSript中变量的作用域闭包的深入理解
2014/05/12 Javascript
jquery的ajax异步请求接收返回json数据实例
2014/06/16 Javascript
javascript实现避免页面按钮重复提交
2015/01/08 Javascript
JS实现的倒计时效果实例(2则实例)
2015/12/23 Javascript
JavaScript数据存储 Cookie篇
2016/07/02 Javascript
js实现获取鼠标当前的位置
2016/12/14 Javascript
JavaScript常用正则验证函数实例小结【年龄,数字,Email,手机,URL,日期等】
2017/01/23 Javascript
完美解决iview 的select下拉框选项错位的问题
2018/03/02 Javascript
javascript实现拖拽碰撞检测
2020/03/12 Javascript
js实现mp3录音通过websocket实时传送+简易波形图效果
2020/06/12 Javascript
Vue数组响应式操作及高阶函数使用代码详解
2020/08/01 Javascript
[39:32]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS DT 第二场
2014/05/23 DOTA
高性能web服务器框架Tornado简单实现restful接口及开发实例
2014/07/16 Python
Python使用爬虫猜密码
2016/02/19 Python
Python实现删除列表中满足一定条件的元素示例
2017/06/12 Python
Python重新加载模块的实现方法
2018/10/16 Python
python scipy求解非线性方程的方法(fsolve/root)
2018/11/12 Python
对python csv模块配置分隔符和引用符详解
2018/12/12 Python
python批量读取文件名并写入txt文件中
2020/09/05 Python
阿根廷首家户外用品制造商和经销商:Montagne
2018/02/12 全球购物
俄罗斯游戏商店:Buka
2020/03/01 全球购物
什么是Linux虚拟文件系统VFS
2012/01/31 面试题
建筑系毕业生自我鉴定
2014/01/24 职场文书
求职简历自荐信怎么写
2015/03/26 职场文书
解决persistence.xml配置文件修改存放路径的问题
2022/02/24 Java/Android