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 相关文章推荐
JS 实现完美include载入实现代码
Aug 05 Javascript
原生JS绑定滑轮滚动事件兼容常见浏览器
Jun 30 Javascript
纯js代码实现简单计算器
Dec 02 Javascript
学习JavaScript设计模式之中介者模式
Jan 14 Javascript
高性能JavaScript循环语句和条件语句
Jan 20 Javascript
JS中用try catch对代码运行的性能影响分析
Dec 26 Javascript
详解JS对象封装的常用方式
Dec 30 Javascript
如何用js判断dom是否有存在某class的值
Feb 13 Javascript
ReactNative实现图片上传功能的示例代码
Jul 11 Javascript
原生js获取left值和top值的三种方法
Aug 02 Javascript
前端Vue项目详解--初始化及导航栏
Jun 24 Javascript
three.js如何实现3D动态文字效果
Mar 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下实现一个阿拉伯数字转中文数字的函数
2008/07/10 PHP
使用php实现下载生成某链接快捷方式的解决方法
2013/05/07 PHP
php使用多个进程同时控制文件读写示例
2014/02/28 PHP
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
2014/06/19 PHP
Codeigniter购物车类不能添加中文的解决方法
2014/11/29 PHP
php数组添加与删除单元的常用函数实例分析
2015/02/16 PHP
WordPress导航菜单的滚动和淡入淡出效果的实现要点
2015/12/14 PHP
PHP中时间加减函数strtotime用法分析
2017/04/26 PHP
js中的前绑定和后绑定详解
2013/08/01 Javascript
JQuery中对Select的option项的添加、删除、取值
2013/08/25 Javascript
JS使用eval解析JSON的注意事项分析
2015/11/14 Javascript
深入浅析react native es6语法
2015/12/09 Javascript
vue过渡和animate.css结合使用详解
2017/06/14 Javascript
Express + Session 实现登录验证功能
2017/09/08 Javascript
node+koa2+mysql+bootstrap搭建一个前端论坛
2018/05/06 Javascript
浅谈Vue.js 中的 v-on 事件指令的使用
2018/11/25 Javascript
浅谈Vue服务端渲染框架Nuxt的那些事
2018/12/21 Javascript
javascript实现5秒倒计时并跳转功能
2019/06/20 Javascript
在Node.js中将SVG图像转换为PNG,JPEG,TIFF,WEBP和HEIF格式的方法
2019/08/22 Javascript
使用Easyui实现查询条件的后端传递并自动刷新表格的两种方法
2019/09/09 Javascript
vue.js实现双击放大预览功能
2020/06/23 Javascript
python小技巧之批量抓取美女图片
2014/06/06 Python
Python写的服务监控程序实例
2015/01/31 Python
python实现获取客户机上指定文件并传输到服务器的方法
2015/03/16 Python
Python实现的用户登录系统功能示例
2018/02/05 Python
python3+PyQt5重新实现QT事件处理程序
2018/04/19 Python
python 控制台单行刷新,多行刷新实例
2020/02/19 Python
Python栈的实现方法示例【列表、单链表】
2020/02/22 Python
python的json包位置及用法总结
2020/06/21 Python
家长会主持词
2014/03/26 职场文书
领导干部群众路线个人对照检查材料思想汇报
2014/09/30 职场文书
2014年银行信贷员工作总结
2014/12/08 职场文书
毕业生党员个人总结
2015/02/14 职场文书
辞职信格式范文
2015/05/13 职场文书
摩登时代观后感
2015/06/03 职场文书
jackson json序列化实现首字母大写,第二个字母需小写
2021/06/29 Java/Android