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 相关文章推荐
永不消失的title提示代码
Feb 15 Javascript
Document 对象的常用方法
Jul 31 Javascript
经过绑定元素时会多次触发mouseover和mouseout事件
Feb 28 Javascript
jquery中post方法用法实例
Oct 21 Javascript
JS简单实现无缝滚动效果实例
Aug 24 Javascript
Bootstrap CSS布局之表单
Dec 17 Javascript
详解JavaScript的闭包、IIFE、apply、函数与对象
Dec 21 Javascript
jQuery中on方法使用注意事项详解
Feb 15 Javascript
jQuery基于事件控制实现点击显示内容下拉效果
Mar 07 Javascript
用js屏蔽被http劫持的浮动广告实现方法
Aug 10 Javascript
如何重置vue打印变量的显示方式
Dec 06 Javascript
vue.js+element 默认提示中英文操作
Nov 11 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防注
2007/01/15 PHP
php 获取完整url地址
2008/12/20 PHP
php获取淘宝分类id示例
2014/01/16 PHP
php页码形式分页函数支持静态化地址及ajax分页
2014/03/28 PHP
解析PHP之提取多维数组指定列的方法
2017/01/03 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
Javascript之旅 对象的原型链之由来
2010/08/25 Javascript
ASP.NET jQuery 实例8 (动态添加内容到DropDownList)
2012/02/03 Javascript
jQuery中children()方法用法实例
2015/01/07 Javascript
jQuery层级选择器用法分析
2015/02/10 Javascript
JavaScript中使用指数方法Math.exp()的简介
2015/06/15 Javascript
微信小程序 天气预报开发实例代码源码
2017/01/20 Javascript
jQuery简易时光轴实现方法示例
2017/03/13 Javascript
对于Javascript 执行上下文的全面了解
2017/09/05 Javascript
vue v-model动态生成详解
2018/06/30 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
2018/07/10 Javascript
jQuery实现参数自定义的文字跑马灯效果
2018/08/15 jQuery
浅谈一个webpack构建速度优化误区
2019/06/24 Javascript
通过vue写一个瀑布流插件代码实例
2019/09/07 Javascript
vue调用本地摄像头实现拍照功能
2020/08/14 Javascript
Python多线程编程(八):使用Event实现线程间通信
2015/04/05 Python
python使用socket向客户端发送数据的方法
2015/04/29 Python
Python实现股市信息下载的方法
2015/06/15 Python
安装python时MySQLdb报错的问题描述及解决方法
2018/03/20 Python
利用keras使用神经网络预测销量操作
2020/07/07 Python
一文彻底解决HTML5页面中长按保存图片功能
2019/06/10 HTML / CSS
百思买加拿大:Best Buy Canada
2018/03/20 全球购物
校园学雷锋活动月总结
2014/03/09 职场文书
校园歌咏比赛主持词
2014/03/18 职场文书
运动会加油口号
2014/06/07 职场文书
2015年银行工作总结范文
2015/04/01 职场文书
2015年中学总务处工作总结
2015/07/22 职场文书
2016年“5.12”护士节致辞
2015/07/31 职场文书
详解Java ES多节点任务的高效分发与收集实现
2021/06/30 Java/Android
详解 TypeScript 枚举类型
2021/11/02 Javascript
Java8 CompletableFuture 异步回调
2022/04/28 Java/Android