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 扩展对input的一些操作方法
Oct 30 Javascript
JavaScript中也使用$美元符号来代替document.getElementById
Jun 19 Javascript
Javascript连接多个数组不用concat来解决
Mar 24 Javascript
轻松实现javascript数据双向绑定
Nov 11 Javascript
js实现网页收藏功能
Dec 17 Javascript
JS中常用的正则表达式
Sep 29 Javascript
JS中检测数据类型的几种方式及优缺点小结
Dec 12 Javascript
jQuery实现Select下拉列表进行状态选择功能
Mar 30 jQuery
Javascript之图片的延迟加载的实例详解
Jul 24 Javascript
深入理解 webpack 文件打包机制(小结)
Jan 08 Javascript
js代码实现轮播图
May 04 Javascript
Node实现搜索框进行模糊查询
Jun 28 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
thinkPHP基于ajax实现的菜单与分页示例
2016/07/12 PHP
PHP中文字符串截断无乱码解决方法
2016/10/10 PHP
PHP通过bypass disable functions执行系统命令的方法汇总
2018/05/02 PHP
jquery formValidator插件ajax验证 内容不做任何修改再离开提示错误的bug解决方法
2013/01/04 Javascript
开发 Internet Explorer 右键功能表(ContextMenu)
2013/07/03 Javascript
javascript中全局对象的parseInt()方法使用介绍
2013/12/19 Javascript
jquery插件jSignature实现手动签名
2015/05/04 Javascript
jQuery实现多级下拉菜单jDropMenu的方法
2015/08/28 Javascript
cocos2dx骨骼动画Armature源码剖析(一)
2015/09/08 Javascript
jQuery实用技巧必备(中)
2015/11/03 Javascript
js创建jsonArray传输至后台及后台全面解析
2016/04/11 Javascript
JS中SetTimeout和SetInterval使用初探
2017/03/23 Javascript
JS中showModalDialog关闭子窗口刷新主窗口用法详解
2017/03/25 Javascript
React Native时间转换格式工具类分享
2017/10/24 Javascript
JavaScript 异步调用
2017/10/25 Javascript
浅谈FastClick 填坑及源码解析
2018/03/02 Javascript
解决Layui中layer报错的问题
2019/09/03 Javascript
Vue获取页面元素的相对位置的方法示例
2020/02/05 Javascript
python使用calendar输出指定年份全年日历的方法
2015/04/04 Python
Python的Bottle框架中返回静态文件和JSON对象的方法
2015/04/30 Python
Python同时向控制台和文件输出日志logging的方法
2015/05/26 Python
利用PyInstaller将python程序.py转为.exe的方法详解
2017/05/03 Python
Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项
2018/11/30 Python
python 使用matplotlib 实现从文件中读取x,y坐标的可视化方法
2019/07/04 Python
Python钉钉报警及Zabbix集成钉钉报警的示例代码
2020/08/17 Python
OpenCV+python实现膨胀和腐蚀的示例
2020/12/21 Python
HTML5 video标签(播放器)学习笔记(一):使用入门
2015/04/24 HTML / CSS
HTML5 播放 RTSP 视频的实例代码
2019/07/29 HTML / CSS
阿迪达斯德国官方网站:adidas德国
2017/07/12 全球购物
英国玛莎百货美国官网:Marks & Spencer美国
2018/11/06 全球购物
凯普林包包西班牙官网:Kipling西班牙
2019/04/12 全球购物
学习张丽丽心得体会
2014/09/03 职场文书
2014年化验员工作总结
2014/11/18 职场文书
营销计划书
2015/01/17 职场文书
css3中transform属性实现的4种功能
2021/08/07 HTML / CSS
Windows server 2012 R2 安装IIS服务器
2022/04/29 Servers