简单易扩展可控性强的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插件Echarts实现的渐变色柱状图
Mar 23 jQuery
Jquery-data的三种用法
Apr 18 jQuery
jQuery选择器_动力节点Java学院整理
Jul 05 jQuery
jQuery+HTML5实现WebGL高性能烟花绽放动画效果【附demo源码下载】
Aug 18 jQuery
jQuery实现简单的计时器功能实例分析
Aug 29 jQuery
jquery点击回车键实现登录效果并默认焦点的方法
Mar 09 jQuery
jQuery easyui datagird编辑行删除行功能的实现代码
Sep 20 jQuery
jQuery实现的老虎机跑动效果示例
Dec 29 jQuery
jQuery实现的五星点评功能【案例】
Feb 18 jQuery
jquery实现两个div中的元素相互拖动的方法分析
Apr 05 jQuery
JQuery事件冒泡和默认行为代码实例
May 13 jQuery
jquery实现简单拖拽效果
Jul 20 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
实现dedecms全站URL静态化改造的代码
2007/03/29 PHP
PHP6 mysql连接方式说明
2009/02/09 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
2014/04/30 PHP
thinkPHP实现瀑布流的方法
2014/11/29 PHP
PHP登录验证码的实现与使用方法
2016/07/07 PHP
List Installed Software Features
2007/06/11 Javascript
解决AJAX中跨域访问出现'没有权限'的错误
2008/08/20 Javascript
jQuery避免$符和其他JS库冲突的方法对比
2014/02/20 Javascript
VS2008中使用JavaScript调用WebServices
2014/12/18 Javascript
常用的JavaScript WEB操作方法分享
2015/02/28 Javascript
Js+php实现异步拖拽上传文件
2015/06/23 Javascript
JS模仿编辑器实时改变文本框宽度和高度大小的方法
2015/08/17 Javascript
javascript生成随机数方法汇总
2015/11/12 Javascript
javascript下拉列表中显示树形菜单的实现方法
2015/11/17 Javascript
jqGrid用法汇总(全经典)
2016/06/28 Javascript
基于Vue.js实现简单搜索框
2020/03/26 Javascript
详解Jquery Easyui的验证扩展
2017/01/09 Javascript
详解weex默认webpack.config.js改造
2018/01/08 Javascript
傻瓜式vuex语法糖kiss-vuex整理
2018/12/21 Javascript
Vue CLI3.0中使用jQuery和Bootstrap的方法
2019/02/28 jQuery
Python中使用第三方库xlutils来追加写入Excel文件示例
2015/04/05 Python
在Python中使用CasperJS获取JS渲染生成的HTML内容的教程
2015/04/09 Python
编写Python脚本抓取网络小说来制作自己的阅读器
2015/08/20 Python
Python连接MySQL并使用fetchall()方法过滤特殊字符
2016/03/13 Python
Python定时任务随机时间执行的实现方法
2019/08/14 Python
python中pathlib模块的基本用法与总结
2020/08/17 Python
selenium+超级鹰实现模拟登录12306
2021/01/24 Python
小狗电器官方商城:中国高端吸尘器品牌
2017/03/29 全球购物
法国发饰品牌:Alexandre De Paris
2018/12/04 全球购物
党员年终民主评议的自我评价
2013/11/05 职场文书
经典广告词大全
2014/03/14 职场文书
年度评优评先方案
2014/06/03 职场文书
网络营销策划方案
2014/06/04 职场文书
党员学习党的群众路线思想汇报(5篇)
2014/09/10 职场文书
2014年幼师工作总结
2014/11/22 职场文书
医院财务人员岗位职责
2015/04/14 职场文书