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

发布时间 - 2026-01-10 22:29:07    点击率:

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

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

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手机号批量滚动抽奖  # js手机号批量抽奖  # js手机号滚动抽奖  # js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS  # js轮盘抽奖实例分析  # js抽奖实现随机抽奖代码效果  # jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码  # js实现简单随机抽奖的方法  # js简单抽奖代码  # js实现大转盘抽奖游戏实例  # 原生JS实现九宫格抽奖效果  # javascript 随机抽奖程序代码  # JS模拟抽奖序效果实现代码  # js实现抽奖功能  # 随机数  # 一声  # 请输入  # 绑定  # 上会  # 都是  # 几个  # 我就  # 就会  # 在这个  # 令下  # 每个人  # 上有  # 回车键  # 就把  # 并将  # 中了  # 还不错  # 请选择  # 谁是 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  南京网站制作费用,南京远驱官方网站?  Python文本处理实践_日志清洗解析【指导】  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  昵图网官方站入口 昵图网素材图库官网入口  微信小程序 HTTPS报错整理常见问题及解决方案  如何快速搭建高效可靠的建站解决方案?  中国移动官方网站首页入口 中国移动官网网页登录  Laravel怎么使用artisan命令缓存配置和视图  html5audio标签播放结束怎么触发事件_onended回调方法【教程】  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  如何实现建站之星域名转发设置?  微信小程序 wx.uploadFile无法上传解决办法  Java类加载基本过程详细介绍  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  非常酷的网站设计制作软件,酷培ai教育官方网站?  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践  php结合redis实现高并发下的抢购、秒杀功能的实例  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  Python数据仓库与ETL构建实战_Airflow调度流程详解  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  如何快速选择适合个人网站的云服务器配置?  JS经典正则表达式笔试题汇总  网站建设整体流程解析,建站其实很容易!  简历在线制作网站免费版,如何创建个人简历?  如何在橙子建站中快速调整背景颜色?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  Laravel怎么连接多个数据库_Laravel多数据库连接配置  php在windows下怎么调试_phpwindows环境调试操作说明【操作】  php打包exe后无法访问网络共享_共享权限设置方法【教程】  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  如何在局域网内绑定自建网站域名?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  LinuxShell函数封装方法_脚本复用设计思路【教程】  再谈Python中的字符串与字符编码(推荐)  Laravel如何升级到最新版本?(升级指南和步骤)  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  如何自定义建站之星网站的导航菜单样式?  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  Laravel模型关联查询教程_Laravel Eloquent一对多关联写法