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的分页控件(C#)
Jan 06 Javascript
鼠标移到div,浮层显示明细,弹出层与div的上边距左边距重合(示例代码)
Dec 14 Javascript
javascript中的循环语句for语句深入理解
Apr 04 Javascript
jQuery随机密码生成的方法
Mar 09 Javascript
JSON相关知识汇总
Jul 03 Javascript
javascript实现省市区三级联动下拉框菜单
Nov 17 Javascript
详解Bootstrap glyphicons字体图标
Jan 04 Javascript
JavaScript易错知识点整理
Dec 05 Javascript
js中字符型和数值型数字的互相转化方法(必看)
Apr 25 Javascript
探索webpack模块及webpack3新特性
Sep 18 Javascript
Vue+jquery实现表格指定列的文字收缩的示例代码
Jan 09 jQuery
js实现随机圆与矩形功能
Oct 29 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开发需要注意的安全问题
2010/09/01 PHP
php 变量未定义等错误的解决方法
2011/01/12 PHP
php向js函数传参的几种方法
2014/08/10 PHP
thinkphp3.2.2实现生成多张缩略图的方法
2014/12/19 PHP
CodeIgniter记录错误日志的方法全面总结
2016/05/17 PHP
详解PHP归并排序的实现
2016/10/18 PHP
php实现的二分查找算法示例
2017/06/20 PHP
PHP利用Cookie设置用户30分钟未操作自动退出功能
2017/07/03 PHP
js String对象中常用方法小结(字符串操作)
2012/01/27 Javascript
通过JavaScript使Div居中并随网页大小改变而改变
2013/06/24 Javascript
Javascript中的几种继承方式对比分析
2016/03/22 Javascript
jquery动态切换背景图片的简单实现方法
2016/05/14 Javascript
详解Node.js如何开发命令行工具
2016/08/14 Javascript
JS实现直接运行html代码的方法
2017/03/13 Javascript
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
2017/04/23 Javascript
js实现网页的两个input标签内的数值加减(示例代码)
2017/08/15 Javascript
Node层模拟实现multipart表单的文件上传示例
2018/01/02 Javascript
详解vue-cli脚手架中webpack配置方法
2018/08/22 Javascript
在vue中多次调用同一个定义全局变量的实例
2018/09/25 Javascript
vue 项目中当访问路由不存在的时候默认访问404页面操作
2020/08/31 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
vue导入.md文件的步骤(markdown转HTML)
2020/12/31 Vue.js
python实现多线程采集的2个代码例子
2014/07/07 Python
基于scrapy实现的简单蜘蛛采集程序
2015/04/17 Python
python简单线程和协程学习心得(分享)
2017/06/14 Python
pygame实现简易飞机大战
2018/09/11 Python
python redis连接 有序集合去重的代码
2019/08/04 Python
python基于socket模拟实现ssh远程执行命令
2020/12/05 Python
临床医学专业个人的自我评价
2013/09/27 职场文书
学校宣传标语
2014/06/18 职场文书
房屋买卖委托书格式范本格式
2014/10/13 职场文书
2016年校长新年寄语
2015/08/17 职场文书
导游词之西递宏村
2019/12/10 职场文书
教你用Python matplotlib库制作简单的动画
2021/06/11 Python
sql注入教程之类型以及提交注入
2021/08/02 MySQL
windows server 2012安装FTP并配置被动模式指定开放端口
2022/06/10 Servers