简单易扩展可控性强的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实现图片轮播效果
May 08 jQuery
jQuery动画_动力节点节点Java学院整理
Jul 04 jQuery
jQuery实现手势解锁密码特效
Aug 14 jQuery
简单实现jQuery轮播效果
Aug 18 jQuery
JS和jQuery通过this获取html标签中的属性值(实例代码)
Sep 11 jQuery
jQuery实现的回车触发按钮事件功能示例
Mar 25 jQuery
jQuery实现基本动画效果的方法详解
Sep 06 jQuery
jquery层次选择器的介绍
Jan 18 jQuery
JavaScript自动生成 年月范围 选择功能完整示例【基于jQuery插件】
Sep 03 jQuery
jquery.validate自定义验证用法实例分析【成功提示与择要提示】
Jun 06 jQuery
jQuery实现B2B网站后台管理系统侧导航
Jul 08 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
PHP新手上路(三)
2006/10/09 PHP
php数组应用之比较两个时间的相减排序
2008/08/18 PHP
php学习之 认清变量的作用范围
2010/01/26 PHP
PHP使用Curl实现模拟登录及抓取数据功能示例
2018/04/27 PHP
Javascript开发包大全整理
2006/12/22 Javascript
Prototype使用指南之hash.js
2007/01/10 Javascript
纯js实现背景图片切换效果代码
2010/11/14 Javascript
JS短路原理的应用示例 精简代码的途径
2013/12/13 Javascript
jQuery侧边栏实现代码
2016/05/06 Javascript
AngularJs Injecting Services Into Controllers详解
2016/09/02 Javascript
javascript中活灵活现的Array对象详解
2016/11/30 Javascript
jQuery DateTimePicker 日期和时间插件示例
2017/01/22 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
2017/03/09 Javascript
浅谈node中的exports与module.exports的关系
2017/08/01 Javascript
使用vue实现简单键盘的示例(支持移动端和pc端)
2017/12/25 Javascript
详解Chai.js断言库API中文文档
2018/01/31 Javascript
浅谈vue的几种绑定变量的值 防止其改变的方法
2018/03/01 Javascript
详解Vue.js中.native修饰符
2018/04/24 Javascript
基于ionic实现下拉刷新功能
2018/05/10 Javascript
vue+element的表格实现批量删除功能示例代码
2018/08/17 Javascript
Vue实现点击箭头上下移动效果
2020/06/11 Javascript
DJANGO-ALLAUTH社交用户系统的安装配置
2014/11/18 Python
深入浅析Python传值与传址
2018/07/10 Python
python+pyqt5编写md5生成器
2019/03/18 Python
Python创建或生成列表的操作方法
2019/06/19 Python
解决tensorboard多个events文件显示紊乱的问题
2020/02/15 Python
Python关于__name__属性的含义和作用详解
2020/02/19 Python
Pycharm添加虚拟解释器报错问题解决方案
2020/10/13 Python
CSS3 3D酷炫立方体变换动画的实现
2019/03/26 HTML / CSS
职工运动会感言
2014/02/07 职场文书
股权收购意向书
2014/04/01 职场文书
党员四风问题对照检查材料思想汇报
2014/09/16 职场文书
幼儿园园长个人总结
2015/03/02 职场文书
会计工作能力自我评价
2015/03/05 职场文书
六一文艺汇演主持词
2015/06/30 职场文书
利用正则表达式匹配浮点型数据
2022/05/30 Java/Android