JS实现转动随机数抽奖特效代码


Posted in Javascript onApril 16, 2020

大家都玩过抽奖游戏,或者梦想抽到大奖吧,但是有没有想过抽奖游戏是怎么实现的呐?今天就给大家分享一款转动随机数抽奖的JS特效代码。

实现代码如下

<!Doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<script src="http://code.jquery.com/jquery-1.7.1.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>

实现的效果图:

JS实现转动随机数抽奖特效代码

现在抽奖游戏应用的非常广泛,我们每个人都会接触到,尤其是节假日的时候各大商场都会组织这种类型的游戏活动吸引顾客,我上面分享的这段代码其实还有很多可以改进,丰富的地方,比如我们可以美化它的界面,功能更加丰富,还有我们可以考虑转动随机数抽奖的速度,决定在哪一格变慢等。

以上就是本文的全部内容,希望大家可以喜欢,可以动手实践一下。

Javascript 相关文章推荐
JavaScript经典效果集锦
Jul 06 Javascript
通过jQuery源码学习javascript(二)
Dec 27 Javascript
原生javascript实现图片按钮切换
Jan 12 Javascript
js闭包实现按秒计数
Apr 23 Javascript
使用 JavaScript 进行函数式编程 (一) 翻译
Oct 02 Javascript
多功能jQuery树插件zTree实现权限列表简单实例
Jul 12 Javascript
js创建对象几种方式的优缺点对比
Sep 28 Javascript
CSS+jQuery实现简单的折叠菜单
Dec 20 Javascript
jQuery实现的背景颜色渐变动画效果示例
Mar 24 jQuery
深入剖析Node.js cluster模块
May 23 Javascript
在vue中读取本地Json文件的方法
Sep 06 Javascript
vue-amap根据地址回显地图并mark的操作
Nov 03 Javascript
JavaScript实现跨浏览器的添加及删除事件绑定函数实例
Aug 04 #Javascript
jquery控制显示服务器生成的图片流
Aug 04 #Javascript
JavaScript实现LI列表数据绑定的方法
Aug 04 #Javascript
用js编写的简单的计算器代码程序
Aug 04 #Javascript
javascript记住用户名和登录密码(两种方式)
Aug 04 #Javascript
js实现简易的单数字随机抽奖(0-9)
Mar 19 #Javascript
JavaScript运动减速效果实例分析
Aug 04 #Javascript
You might like
php上传大文件设置方法
2016/04/14 PHP
php实现的http请求封装示例
2016/11/08 PHP
php利用fsockopen GET/POST提交表单及上传文件
2017/05/22 PHP
window.onload 加载完毕的问题及解决方案(下)
2009/07/09 Javascript
js注意img图片的onerror事件的分析
2011/01/01 Javascript
jQuery EasyUI API 中文文档 - Menu菜单
2011/10/03 Javascript
二叉树先序遍历的非递归算法具体实现
2014/01/09 Javascript
一个网页标题title的闪动提示效果实现思路
2014/03/22 Javascript
jquery判断checkbox是否选中及改变checkbox状态的实现方法
2016/05/26 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
Bootstrap输入框组件简单实现代码
2017/03/06 Javascript
通过构造函数实例化对象的方法
2017/06/28 Javascript
JS中使用gulp实现压缩文件及浏览器热加载功能
2017/07/12 Javascript
基于Vue过渡状态实例讲解
2017/09/14 Javascript
Javascript 编码约定(编码规范)
2018/03/11 Javascript
详解JavaScript 为什么要有 Symbol 类型?
2019/04/03 Javascript
VUE接入腾讯验证码功能(滑块验证)备忘
2019/05/07 Javascript
vue 二维码长按保存和复制内容操作
2020/09/22 Javascript
python字符串连接方式汇总
2014/08/21 Python
Python httplib模块使用实例
2015/04/11 Python
python实现复制整个目录的方法
2015/05/12 Python
简单介绍Python中的floor()方法
2015/05/15 Python
答题辅助python代码实现
2018/01/16 Python
Python3.4学习笔记之列表、数组操作示例
2019/03/01 Python
Python面向对象总结及类与正则表达式详解
2019/04/18 Python
一行Python代码制作动态二维码的实现
2019/09/09 Python
Python使用Matlab命令过程解析
2020/06/04 Python
python 8种必备的gui库
2020/08/27 Python
python用opencv 图像傅里叶变换
2021/01/04 Python
使用CSS3制作一个简单的Chrome模拟器
2015/07/15 HTML / CSS
详解css3使用transform出现字体模糊的解决办法
2020/10/16 HTML / CSS
StubHub墨西哥:购买和出售您的门票
2016/09/17 全球购物
党性观念心得体会
2014/09/03 职场文书
家长评语怎么写
2014/12/30 职场文书
2015感人爱情寄语
2015/02/26 职场文书
React实现动效弹窗组件
2021/06/21 Javascript