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 相关文章推荐
JQuery toggle使用分析
Nov 16 Javascript
javascript中的new使用
Mar 20 Javascript
JQuery.ajax传递中文参数的解决方法 推荐
Mar 28 Javascript
javascript实现带节日和农历的日历特效
Feb 01 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
Jun 26 Javascript
JS判断输入的字符串是否是数字的方法(正则表达式)
Nov 29 Javascript
利用javascript实现的三种图片放大镜效果实例(附源码)
Jan 23 Javascript
Vue.js 2.0学习教程之从基础到组件详解
Apr 24 Javascript
KnockoutJS数组比较算法实例详解
Nov 25 Javascript
Vue data的数据响应式到底是如何实现的
Feb 11 Javascript
jQuery 图片查看器插件 Viewer.js用法简单示例
Apr 04 jQuery
AJAX实现省市县三级联动效果
Oct 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 HTML代码串截取代码
2008/12/29 PHP
基于curl数据采集之正则处理函数get_matches的使用
2013/04/28 PHP
Laravel ORM 数据model操作教程
2019/10/21 PHP
php实现快速对二维数组某一列进行组装的方法小结
2019/12/04 PHP
ThinkPHP5框架中使用JWT的方法示例
2020/06/03 PHP
PHP编程一定要改掉的5个不良习惯
2020/09/18 PHP
PHP的重载使用魔术方法代码实例详解
2021/02/26 PHP
JS模拟的QQ面板上的多级可展开的菜单
2009/10/10 Javascript
无缝滚动js代码通俗易懂(自写)
2013/06/19 Javascript
使用js实现关闭js弹出层的窗口
2014/02/10 Javascript
JavaScript二维数组实现的省市联动菜单
2014/05/08 Javascript
PHP+jQuery+Ajax实现多图片上传效果
2015/03/14 Javascript
javascript实现简单的进度条
2015/07/02 Javascript
深入理解js promise chain
2016/05/05 Javascript
Js实现京东无延迟菜单效果实例(demo)
2017/06/02 Javascript
vue的状态管理模式vuex
2017/11/30 Javascript
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
2018/04/08 Javascript
[17:00]DOTA2 HEROS教学视频教你分分钟做大人-帕克
2014/06/10 DOTA
Python中使用partial改变方法默认参数实例
2015/04/28 Python
python 统计代码行数简单实例
2017/05/04 Python
Python PyQt4实现QQ抽屉效果
2018/04/20 Python
TensorFlow实现自定义Op方式
2020/02/04 Python
Python基于traceback模块获取异常信息
2020/07/23 Python
CSS3中几个新增加的盒模型属性使用教程
2016/03/01 HTML / CSS
世界上最值得信赖的多日游在线市场:TourRadar
2018/07/20 全球购物
eDreams葡萄牙:全球最大的在线旅行社之一
2019/04/15 全球购物
若通过ObjectOutputStream向一个文件中多次以追加方式写入object,为什么用ObjectInputStream读取这些object时会产生StreamCorruptedException?
2016/10/17 面试题
工商治理实习生的自我评价分享
2014/02/20 职场文书
融资租赁计划书
2014/04/29 职场文书
写求职信有哪些注意事项
2014/05/08 职场文书
2014年实习生工作总结
2014/11/27 职场文书
少年雷锋观后感
2015/06/10 职场文书
2016学雷锋优秀志愿者事迹材料
2016/02/25 职场文书
使用Golang的channel交叉打印两个数组的操作
2021/04/29 Golang
JS如何实现基于websocket的多端桥接平台
2021/05/14 Javascript
从零开始在Centos7上部署SpringBoot项目
2022/04/07 Servers