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的表头固定的若干方法
Jan 27 Javascript
javascript学习(二)javascript常见问题总结
Jan 02 Javascript
html dom节点操作(获取/修改/添加或删除)
Jan 23 Javascript
JavaScript获取当前页面上的指定对象示例代码
Feb 28 Javascript
jQuery 浮动导航菜单适合购物商品类型的网站
Sep 09 Javascript
浅谈javascript中字符串String与数组Array
Dec 31 Javascript
JQuery通过后台获取数据遍历到前台的方法
Aug 13 jQuery
对Vue.js之事件的绑定(v-on: 或者 @ )详解
Sep 15 Javascript
在vue中动态添加class类进行显示隐藏实例
Nov 09 Javascript
JS实现长图上下滚动效果
Mar 19 Javascript
vue实例的选项总结
Jun 09 Javascript
谈谈JavaScript中的垃圾回收机制
Sep 17 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代码包装修正版
2008/03/15 PHP
php 截取字符串并以零补齐str_pad() 函数
2011/05/07 PHP
Laravel 4 初级教程之Pages、表单验证
2014/10/30 PHP
php获取数组元素中头一个数组元素值的实现方法
2014/12/20 PHP
PHP面向对象类型约束用法分析
2019/06/12 PHP
关于URL中的特殊符号使用介绍
2011/11/03 Javascript
firefox下jquery iframe刷新页面提示会导致重复之前动作
2012/12/17 Javascript
js格式化时间和js格式化时间戳示例
2014/02/10 Javascript
jquery实现简单的自动播放幻灯片效果
2015/06/13 Javascript
集成vue到jquery/bootstrap项目的方法
2018/02/10 jQuery
json 带斜杠时如何解析的实现
2019/08/12 Javascript
Element-UI+Vue模式使用总结
2020/01/02 Javascript
vue跳转方式(打开新页面)及传参操作示例
2020/01/26 Javascript
[04:55]完美世界副总裁蔡玮:DOTA2的自由、公平与信任
2013/12/18 DOTA
python使用urllib模块和pyquery实现阿里巴巴排名查询
2014/01/16 Python
python中的实例方法、静态方法、类方法、类变量和实例变量浅析
2014/04/26 Python
Python中使用select模块实现非阻塞的IO
2015/02/03 Python
Python2.x中文乱码问题解决方法
2015/06/02 Python
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
2016/07/04 Python
详解Python多线程
2016/11/14 Python
Python实现针对中文排序的方法
2017/05/09 Python
python数据结构学习之实现线性表的顺序
2018/09/28 Python
python 提取key 为中文的json 串方法
2018/12/31 Python
python实现将文件夹内的每张图片批量分割成多张
2019/07/22 Python
Python 多线程其他属性以及继承Thread类详解
2019/08/28 Python
Python pip install之SSL异常处理操作
2020/09/03 Python
Django-Scrapy生成后端json接口的方法示例
2020/10/06 Python
怎么解决pycharm license Acti的方法
2020/10/28 Python
新西兰便宜隐形眼镜购买网站:QUICKLENS New Zealand
2019/03/02 全球购物
POS解决方案:MUNBYN(热敏打印机、条形码扫描仪)
2020/06/09 全球购物
化工专业自荐书
2014/06/16 职场文书
学校党员对照检查材料
2014/08/28 职场文书
地方白酒代理协议书
2014/10/25 职场文书
2015年实习单位评语
2015/03/25 职场文书
万能密码的SQL注入漏洞其PHP环境搭建及防御手段
2021/09/04 SQL Server
MySQL新手入门进阶语句汇总
2022/09/23 MySQL