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 源代码显示控件 (Ajax加载方式).
May 18 Javascript
基于js与flash实现的网站flv视频播放插件代码
Oct 14 Javascript
JavaScript 事件对象介绍
Apr 13 Javascript
解决微信浏览器Javascript无法使用window.location.reload()刷新页面
Jun 21 Javascript
浅谈$_FILES数组为空的原因
Feb 16 Javascript
利用Chrome DevTools直接调试Node.js和JavaScript的方法详解(并行)
Feb 16 Javascript
Node.js环境下Koa2添加travis ci持续集成工具的方法
Jun 19 Javascript
利用Node.js了解与测量HTTP所花费的时间详解
Sep 22 Javascript
详解javascript中的变量提升和函数提升
May 24 Javascript
解决layui追加或者动态修改的表单元素“没效果”的问题
Sep 18 Javascript
JS+canvas五子棋人机对战实现步骤详解
Jun 04 Javascript
Vue h函数的使用详解
Feb 18 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
PHP常用的缓存技术汇总
2014/05/05 PHP
编写PHP脚本使WordPress的主题支持Widget侧边栏
2015/12/14 PHP
PHP工厂模式简单实现方法示例
2018/05/23 PHP
php设计模式之适配器模式原理、用法及注意事项详解
2019/09/24 PHP
js监听表单value的修改同步问题,跨浏览器支持
2009/12/31 Javascript
神奇的7个jQuery 3D插件整理
2011/01/06 Javascript
jQuery中使用了document和window哪些属性和方法小结
2011/09/13 Javascript
js 延迟加载 改变JS的位置加快网页加载速度
2012/12/11 Javascript
在页面上用action传递参数到后台出现乱码的解决方法
2013/12/31 Javascript
解决jQuery动态获取手机屏幕高和宽的问题
2014/05/07 Javascript
JS获取IMG图片高宽的简单实例
2016/05/17 Javascript
jQuery基本筛选选择器实例代码
2017/02/06 Javascript
es6学习笔记之Async函数基本教程
2017/05/11 Javascript
深入理解vue Render函数
2017/07/19 Javascript
详解在vue-cli项目中使用mockjs(请求数据删除数据)
2017/10/23 Javascript
详解vue项目中调用百度地图API使用方法
2019/04/25 Javascript
python指定写入文件时的编码格式方法
2018/06/07 Python
Python中修改字符串的四种方法
2018/11/02 Python
python pandas生成时间列表
2019/06/29 Python
python处理大日志文件
2019/07/23 Python
详解Python绘图Turtle库
2019/10/12 Python
python 实现兔子生兔子示例
2019/11/21 Python
python 画3维轨迹图并进行比较的实例
2019/12/06 Python
Jupyter notebook如何修改平台字体
2020/05/13 Python
Python获取excel内容及相关操作代码实例
2020/08/10 Python
OpenCV利用python来实现图像的直方图均衡化
2020/10/21 Python
html5的localstorage详解
2017/05/09 HTML / CSS
详解HTML5中的manifest缓存使用
2015/09/09 HTML / CSS
.NET程序员的几道面试题
2012/06/01 面试题
四种会话跟踪技术
2015/05/20 面试题
名人演讲稿范文
2013/12/28 职场文书
法院干警四风问题自我剖析材料
2014/09/29 职场文书
党员个人批评与自我批评
2014/10/14 职场文书
给老婆的保证书
2015/01/16 职场文书
2019员工保密协议书(3篇)
2019/09/23 职场文书
ORACLE数据库对long类型字段进行模糊匹配的解决思路
2021/04/07 Oracle