简单易扩展可控性强的Jquery转盘抽奖程序


Posted in jQuery onMarch 16, 2019

基于Jquery的Javascript转盘抽奖程序,可以自定义抽奖界面,奖品数量、图片等,可控制中奖的奖品,抽奖转盘转动的速度和圈数。

在实际使用中,应当把概率放到后台程序中运算,以保证安全性和产生中奖奖品的可控性

简单易扩展可控性强的Jquery转盘抽奖程序

Javascript代码:

<script type="text/javascript">
var index = 1,  //当前亮区位置
prevIndex = 14,  //前一位置
Speed = 300,  //初始速度
Time,   //计时器
arr_length = 14,  //奖池奖品数量
EndIndex = 1,  //决定在哪一格变慢
cycle = 0,   //计算圈数  
EndCycle = 3,  //转动多少圈后停下
flag = false,  //结束转动标志
random_num = 1,  //中奖的格子
quick = 0;   //多少格后开始加速
function StartGame(){
 $("#random_box li").removeClass("random_current");
 //产出随机中奖数1--14之间
 //在实际应用中,中奖数应通过Ajax从后台获得,以确保中奖概率的可控性
 random_num = Math.floor(Math.random() * 14 + 1);
 //从第一格开始转动
 index = 1;
 //圈数计数器置0
 cycle = 0;
 flag = false;
 //中奖格子前5格开始变慢
 if(random_num > 10) {
  EndIndex = random_num - 10; 
 } else {
  EndIndex = random_num + arr_length - 10;
 }
 Time = setInterval(Star,Speed);
}
function Star(num){
  //跑马灯变速
  if(flag == false){
 //走五格开始加速
 if(quick == 5){
  clearInterval(Time);
  Speed=50;
  Time=setInterval(Star,Speed);
 }
 //跑指定圈数后开始减速
 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>

HTML代码:

<div class="box">
 <div class="inbox">
 <ul id="random_box">
  <li id="random_1"><img src="images/img01.gif"></li>
  <li id="random_2"><img src="images/img02.gif"></li>
  <li id="random_3"><img src="images/ts.gif"></li>
  <li id="random_4"><img src="images/img03.gif"></li>
  <li id="random_5"><img src="images/img04.gif"></li>
  <li id="random_6"><img src="images/ts.gif"></li>
  <li id="random_7"><img src="images/img05.gif"></li>
  <li id="random_8"><img src="images/img06.gif"></li>
  <li id="random_9"><img src="images/img07.gif"></li>
  <li id="random_10"><img src="images/ts.gif"></li>
  <li id="random_11"><img src="images/img01.gif"></li>
  <li id="random_12"><img src="images/img02.gif"></li>
  <li id="random_13"><img src="images/ts.gif"></li>
  <li id="random_14"><img src="images/img04.gif"></li> 
 </ul>
 <b class="ok" onclick="StartGame()">我要抽奖</b>
 </div>
</div>

CSS代码:

/* 
 CSS Document
 Power by 3water.com
*/
body,p,ul,ol,li,img,div{margin:0;padding:0;border:0;}
ul,li{list-style:none;}
body{font-size:12px;font-family:Arial, Helvetica, sans-serif; text-align:center; margin:0 auto;}
.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:1px 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:2px solid red;}

点击下载:简单易扩展可控性强的Jquery转盘抽奖程序

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

jQuery 相关文章推荐
jquery实现tab选项卡切换效果(悬停、下方横线动画位移)
May 05 jQuery
jQuery动态追加页面数据以及事件委托详解
May 06 jQuery
jQuery ajax动态生成table功能示例
Jun 14 jQuery
jQuery实现广告条滚动效果
Aug 22 jQuery
jQuery Position方法使用和兼容性
Aug 23 jQuery
jQuery 开发之EasyUI 添加数据的实例
Sep 26 jQuery
简单实现jquery隔行变色
Nov 09 jQuery
jquery写出PC端轮播图实例
Jan 26 jQuery
Jquery实现无缝向上循环滚动列表的特效
Feb 13 jQuery
jQuery.parseJSON()函数详解
Feb 28 jQuery
Jquery ajax书写方法代码实例解析
Jun 12 jQuery
jQuery插件实现图片轮播效果
Oct 19 jQuery
详解jQuery-each()方法
Mar 13 #jQuery
使用jquery的cookie实现登录页记住用户名和密码的方法
Mar 13 #jQuery
Jquery的autocomplete插件用法及参数讲解
Mar 12 #jQuery
JS/jQuery实现获取时间的方法及常用类完整示例
Mar 07 #jQuery
jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析
Mar 06 #jQuery
[jQuery] 事件和动画详解
Mar 05 #jQuery
jQuery实现的导航条点击后高亮显示功能示例
Mar 04 #jQuery
You might like
Phpbean路由转发的php代码
2008/01/10 PHP
linux下实现定时执行php脚本
2015/02/13 PHP
php遍历CSV类实例
2015/04/14 PHP
Zend Framework教程之Loader以及PluginLoader用法详解
2016/03/09 PHP
js创建元素(节点)示例
2014/01/02 Javascript
Javascript 拖拽的一些简单的应用(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
js实现超简单的展开、折叠目录代码
2015/08/28 Javascript
javascript创建对象的几种模式介绍
2016/05/06 Javascript
基于jQuery实现仿QQ空间送礼物功能代码
2016/05/24 Javascript
JavaScript仿flash遮罩动画效果
2016/06/15 Javascript
Google 地图API Map()构造器详解
2016/08/06 Javascript
Backbone中View之间传值的学习心得
2016/08/09 Javascript
react.js CMS 删除功能的实现方法
2017/04/17 Javascript
基于vue.js中关于下拉框的值默认及绑定问题
2018/08/22 Javascript
vue基于viewer实现的图片查看器功能
2019/04/12 Javascript
js实现九宫格布局效果
2020/05/28 Javascript
[06:07]DOTA2-DPC中国联赛 正赛 Ehome vs VG 选手采访
2021/03/11 DOTA
Python3基础之条件与循环控制实例解析
2014/08/13 Python
使用Python的Django框架实现事务交易管理的教程
2015/04/20 Python
在Python中处理字符串之isdigit()方法的使用
2015/05/18 Python
Python实现代码统计工具(终极篇)
2016/07/04 Python
django rest framework 实现用户登录认证详解
2019/07/29 Python
python将字典列表导出为Excel文件的方法
2019/09/02 Python
Python 异步协程函数原理及实例详解
2019/11/13 Python
Python中six模块基础用法
2019/12/08 Python
Python-jenkins模块获取jobs的执行状态操作
2020/05/12 Python
HTML5 Canvas+JS控制电脑或手机上的摄像头实例
2014/05/03 HTML / CSS
Linux中如何设置Java环境变量(Ubuntu)
2016/07/24 面试题
俄语专业毕业生推荐信
2013/10/28 职场文书
小学三年级学生评语
2014/04/22 职场文书
第二批党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
作风整顿个人剖析材料
2014/10/06 职场文书
党的群众路线批评与自我批评范文
2014/10/16 职场文书
在职人员跳槽求职信
2015/03/20 职场文书
运动会通讯稿300字
2015/07/20 职场文书
2019职场单身人才调研报告:互联网行业单身比例最高
2019/08/07 职场文书