js手机号批量滚动抽奖实现代码


Posted in Javascript onApril 17, 2020

我们平时在看一些选秀节目或一些歌唱类比赛节目时经常会看到在现场的大屏幕上会有观众的手机号在滚动来选出谁是幸运观众或谁中了什么奖项,这些手机号都是现场观众或场外观众在给选手投票时产生的,当主持人一声开始令下,大屏幕上的手机号就会快速随机滚动,当主持人一声停令下,大屏幕上会随机出现几个停止滚动的手机号,这种手机号批量随机滚动的效果,就是我们今天要实现的效果。注意,在这个效果的实现当中最核心的就是随机和不重复。

下面,我就简单来介绍一下原理:

1、随机,我们要写一个随机数,而且这个随机数不能重复,这个不能重复的随机数说白了就是我们从数据库中取出的手机号的索引;
2、使用定时器不断的产生不重复的随机数,用这些不重复的随机数去绑定手机号并将手机号追加在一个盒子中;
3、去除中奖的手机号(这个前端貌似没法实现,只能后台去控制),当开始抽奖时再次产生不重复的随机数,再次用这些随机数去绑定手机号,直到抽奖结束。

正好我们公司最近年会上有这样的现场抽奖,于是我就做了一个这样的抽奖效果(我们的抽奖号码是用的我们每个人的邀请码,不是手机号,其实原理都一样。),而且可以控制每次中奖的人数,配上后台代码和数据库后效果还不错,接下来就把实现代码

分享出来吧。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="renderer" content="webkit">
<title>互融CLUB</title>
<script type="text/javascript" src="js/jquery.min.js"></script>
<style>
*{margin:0;padding:0;}
img{display:block;}
i{font-style:normal;}
.vetically{justify-content:center;align-items:center;display:-webkit-flex;}
.prize_con{position: absolute;width: 100%;height: 100%;background: url(images/firstp_bg.jpg) no-repeat left top / 100% 100%;overflow: hidden;}
.prize_grade{font-size:98px;color: #ffe9af;text-align: center;margin: 160px auto 0;}
.prize_list{width:55%;height:350px;margin: 20px auto 55px;text-align: center;overflow: hidden;}
.prize_list ul{width:100%;font-size:0;}
.prize_list li{display:inline-block;font-size:45px;color:#f1bf90;text-align: center;width:20%;line-height:100px;font-family:Arial;}
.start{width: 250px;height: 90px;margin:0 auto;cursor:pointer;}
.prize_set{position: absolute;right: 60px;bottom: 40px;font-size: 16px;color: #f7f3e8;line-height: 30px;}
.prize_set li{display: inline-block;margin-left: 20px;}
.set_grade select,.set_people input, .set_money input{background: #fff;width:110px;height:36px;border:1px solid #8f0000;margin-left: .1rem;color: #000;padding-left:10px;}
</style>
</head>
<body>
<div class="wrap">
 <div class="prize_con">
 <p class="prize_grade"><span>开始抽奖</span> <i>0</i>元</p>
 <div class="prize_list vetically">
  <ul>
  <li>000000</li>
  <li>000000</li>
  <li>000000</li>
  <li>000000</li>
  <li>000000</li>
  <li>000000</li>
  <li>000000</li>
  <li>000000</li>
  <li>000000</li>
  <li>000000</li> 
  </ul>
 </div>
 <p class="start"><img src="images/prize_start.png" alt=""></p>
 <ul class="prize_set">
  <li class="set_grade">奖等
  <select id="set_grade">
  <option>选择奖等</option>
  <option>特等奖</option>
  <option>一等奖</option>
  <option>二等奖</option>
  <option>三等奖</option>
  </select>
  </li>
  <li class="set_people">人数<input type="tel" placeholder="输入中奖人数" id="prizeCount"></li>
  <li class="set_money">金额<input type="tel" placeholder="输入中奖金额" id="prizeMoney"></li>
 </ul>
 </div>
</div>
<input type="hidden" value="0" id="prize_btn">
<script>
 var ran = 0;
 var myNumber;
 var arr = [];
 var code = [302610,210022,159862,158602,145635,856997,586223,546221,145213,987451,251364,854136,581698,123785,521387,752169,718954,412321,898989,121245,788565,458558,589659,455212,964632,458412,223344,112233,335566,778899];

 /*随机所有的code并且不重复*/
 function showRandomNum(num) {
 var li = "";
 for(var i = 0; i < code.length; i++){
 arr[i] = i;
 }
 arr.sort(function(){
 return 0.5 - Math.random();
 });

 for(var i = 0; i < num; i++){
 var index = arr[i];
 li += '<li>'+code[index]+'</li>';
 }

 $(".prize_list ul").html(li);
 }

 $(function () {
 $(".start").click(function(){
 if($("#prize_btn").val() == 0){ 
 if($("#set_grade").val() == "选择奖等") {
  alert("请选择奖等");
  return;
 }else if($("#prizeCount").val() == "") {
  alert("请输入中奖人数");
  return;
 }else if($("#prizeCount").val() > 10) {
  alert("单次抽奖人数不能超过10人");
  return;
 }else if($("#prizeMoney").val() == "") {
  alert("请输入中奖金额");
  return;
 }else{
  $("#prize_btn").val(1);
  var num = $("#prizeCount").val();
  $(this).find("img").attr("src","images/prize_stop.png");

  myNumber = setInterval(function(){
  showRandomNum(num);
  }, 30);
 } 
 }else{
 $("#prize_btn").val(0);
 clearInterval(myNumber);
 $(this).find("img").attr("src","images/prize_start.png");
 } 
 });

 //回车键控制开始和停止
 $(document).keydown(function (event) {
 var e = event || window.event || arguments.callee.caller.arguments[0];
 if (e && e.keyCode == 13) { // enter 键
  $(".start").click();
 }
 });

 $("#set_grade").change(function(){
 $(".prize_grade span").text($(this).val());
 });

 $("#prizeMoney").keyup(function(){
 $(".prize_grade i").text($(this).val());
 });
}); 
</script>
</body>
</html>

效果图如下:

js手机号批量滚动抽奖实现代码

以下附上源代码:js手机号批量滚动抽奖代码实现

想要学习更多关于抽奖功能的实现,请参考此专题:抽奖功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js实现ASP分页函数 HTML分页函数
Sep 22 Javascript
javascript基于jQuery的表格悬停变色/恢复,表格点击变色/恢复,点击行选Checkbox
Aug 05 Javascript
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
Mar 03 Javascript
javascript判断iphone/android手机横竖屏模式的函数
Dec 20 Javascript
js浮动图片的动态效果
Jul 10 Javascript
jqGrid随窗口大小变化自适应大小的示例代码
Dec 28 Javascript
Jquery中国地图热点效果-鼠标经过弹出提示层信息的简单实例
Feb 12 Javascript
AngularJS的一些基本样式初窥
Jul 27 Javascript
javascript判断复选框是否选中的方法
Oct 16 Javascript
Node.js中环境变量process.env的一些事详解
Oct 26 Javascript
bootstrap3中container与container_fluid外层容器的区别讲解
Dec 04 Javascript
vue 全局封装loading加载教程(全局监听)
Nov 05 Javascript
js图片轮播手动切换特效
Jan 12 #Javascript
原生js实现倒计时功能(多种格式调用)
Jan 12 #Javascript
JavaScript定义全局对象的方法示例
Jan 12 #Javascript
Node.js制作简单聊天室
Jan 12 #Javascript
jQuery 插件实现随机自由弹跳气泡样式
Jan 12 #Javascript
微信小程序学习(4)-系统配置app.json详解
Jan 12 #Javascript
jQuery Validate 数组 全部验证问题
Jan 12 #Javascript
You might like
解决ajax+php中文乱码的方法详解
2013/06/09 PHP
php使用json_encode对变量json编码
2014/04/07 PHP
JavaScript 解析读取XML文档 实例代码
2009/07/07 Javascript
Jquery实现简单的动画效果代码
2012/03/18 Javascript
javascript 正则表达式相关应介绍
2012/11/27 Javascript
javascript 实现键盘上下左右功能的小例子
2013/09/15 Javascript
解决json日期格式问题的3种方法
2014/02/02 Javascript
介绍JavaScript中Math.abs()方法的使用
2015/06/14 Javascript
JS实现带关闭功能的阿里妈妈网站顶部滑出banner工具条代码
2015/09/17 Javascript
浅析Javascript匿名函数与自执行函数
2016/02/06 Javascript
jquery实现拖动效果(代码分享)
2017/01/25 Javascript
jQuery+pjax简单示例汇总
2017/04/21 jQuery
Vue header组件开发详解
2018/01/26 Javascript
微信小程序 如何引入外部字体库iconfont的图标
2018/01/31 Javascript
electron-vue利用webpack打包实现多页面的入口文件问题
2019/05/12 Javascript
Layui事件监听的实现(表单和数据表格)
2019/10/17 Javascript
JavaScript 异步时序问题
2020/11/20 Javascript
Python基类函数的重载与调用实例分析
2015/01/12 Python
一篇文章快速了解Python的GIL
2018/01/12 Python
Python 元类实例解析
2018/04/04 Python
浅谈python日志的配置文件路径问题
2018/04/28 Python
python实现公司年会抽奖程序
2019/01/22 Python
python tkinter 设置窗口大小不可缩放实例
2020/03/04 Python
python ssh 执行shell命令的示例
2020/09/29 Python
CSS3实现鼠标悬停显示扩展内容
2016/08/24 HTML / CSS
比较基础的php面试题及答案-填空题
2014/04/26 面试题
建筑专业自我鉴定
2013/10/22 职场文书
婚礼新郎父母答谢词
2014/01/16 职场文书
自我鉴定总结
2014/03/24 职场文书
升旗仪式演讲稿
2014/05/08 职场文书
上班迟到检讨书范文
2015/05/06 职场文书
卫生院义诊活动总结
2015/05/07 职场文书
2015年三好一满意工作总结
2015/07/24 职场文书
结婚主持人致辞
2015/07/28 职场文书
MySQL系列之十五 MySQL常用配置和性能压力测试
2021/07/02 MySQL
python 详解turtle画爱心代码
2022/02/15 Python