基于JavaScript实现简单抽奖功能代码实例


Posted in Javascript onOctober 20, 2020

为什么会做这个东西呢,纯属好玩,闲的

其实是在上次班会的时候想到的,班会的时候叫人回答问题,没人回答

当时就想,我如果抽签抽到你了,你还是不回答吗??好吧,一切都是扯淡

先来看看页面效果吧:

基于JavaScript实现简单抽奖功能代码实例

点击抽取就可以抽签了,红色框会显示内容,(PS:红色框是没有的,仅仅做描述)

抽取到的效果图如下,字体会随机滚动,最后停止:

基于JavaScript实现简单抽奖功能代码实例

里面的抽取内容完全可以替换,,,,

下面贴上代码:

<!DOCTYPE html>
<html lang="zh">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <style>
    *{margin: 0px;padding: 0px;}
    li{list-style: none;}
    body{
      font-family: "楷体";
      user-select:none;
      background: url('1.jpg') no-repeat;
      background-size: 100%;
      /*background-color: red;*/
    }
    .section{
      position: relative;
      width:935px;
      height: 460px;
      background-color: rgba(0,0,0,.3);
      margin:165px auto 0;
      text-align: center;
    }
    .section h2{
      height: 90px;
      line-height: 90px;
      font-size: 40px;
      color:#fff;
    }
    .section .s-result{
      height: 400px;
      color: #fff;
    }
    .s-result .number{
      float: left;
      width: 895px;
      height: 300px;
      line-height: 300px;
      margin-left: 20px;
      font-size: 60px;
      font-weight: bold;
    }
    .btn{
      position:absolute;
      left: 50%;
      margin-left: -161px;
      bottom: -40px;
      width: 323px;
      height: 81px;
      border-radius: 30px;
      background-color: #000;
      cursor:pointer;
    }
    .btn p{
      line-height: 81px;
      font-size: 50px;
      color: #fff;
    }
  </style>
</head>
<body>
  <div class="section">
    <h2>看看谁最幸运!!</h2>
    <div class="s-result">
    </div>
    <div class="btn">
      <p>点 击 抽 取</p>
    </div>
  </div>
  <script>
    var oBtn = document.getElementsByClassName('btn')[0];
    var oResult = document.getElementsByClassName('s-result')[0];
    var arrName = ['张三','李四','王五','赵六','李xx','杨xx','张xx','A_dmin'];     //抽签的内容
    var step = 1;
    var cnt = 1;
    var flag = true;
    oBtn.onclick = function (){
      if(flag){
        step = 1;
        creatName();
        flag = false;
      }else{
        var d = document.getElementsByClassName('number')[0];
        oResult.removeChild(d);
        step = 1;
        creatName();
      }
    }
    function getName(){
      var num = Math.floor(Math.random()*(arrName.length-1));
      var n = arrName[num];
      arrName.splice(num,1);
      return n;
    }
    function creatName(){
      if(step > cnt){
        return null;
      }
      step++;
      
      var oDiv = document.createElement('div');
      oDiv.className = 'number';
      
      oResult.appendChild(oDiv);
      
      var dis = 1;
      var maxDis = 30;
      var mySet = setInterval(function(){
        dis++;
        if(dis > maxDis){
          oDiv.innerHTML = getName();
          clearInterval(mySet);
          creatName();
          return null;
        }
        oDiv.innerHTML = arrName[Math.floor(Math.random()*(arrName.length-1))];
      },50);
    }
  </script>
</body>
</html>

PS:

有点小瑕疵,可点击多次,每次随机的结果都是不一样的,所以当内容抽取完之后,页面会显示undefined,不过影响不大,啊哈哈哈哈

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

Javascript 相关文章推荐
JQuery实现表格中相同单元格合并示例代码
Jun 26 Javascript
jQuery常用数据处理方法小结
Feb 20 Javascript
JavaScript中的Math.E属性使用详解
Jun 12 Javascript
深入浅析JavaScript中with语句的理解
May 12 Javascript
使用React实现轮播效果组件示例代码
Sep 05 Javascript
详解获取jq ul第一个li定位的四种解决方案
Nov 23 Javascript
js实现表单提交后不重新刷新当前页面
Nov 30 Javascript
JS键盘版计算器的制作方法
Dec 03 Javascript
JavaScript中的普通函数和箭头函数的区别和用法详解
Mar 21 Javascript
bootstrap table实现横向合并与纵向合并
Jul 18 Javascript
深入学习Vue nextTick的用法及原理
Oct 08 Javascript
vue中的计算属性和侦听属性
Nov 06 Javascript
微信小程序使用前置摄像头拍照
Oct 22 #Javascript
jQuery实现可以计算进制转换的计算器
Oct 19 #jQuery
jQuery实现计算器功能
Oct 19 #jQuery
vue3为什么要用proxy替代defineProperty
Oct 19 #Javascript
jQuery实现推拉门效果
Oct 19 #jQuery
小程序实现左滑删除的效果的实例代码
Oct 19 #Javascript
jQuery实现图片切换效果
Oct 19 #jQuery
You might like
Body是什么,该怎么喝出咖啡里的口感
2021/03/03 咖啡文化
可以保证单词完整性的PHP英文字符串截取代码分享
2014/07/15 PHP
Codeigniter的dom类用法实例
2015/06/26 PHP
初学js插入节点appendChild insertBefore使用方法
2011/07/04 Javascript
IE6-IE9不支持table.innerHTML的解决方法分享
2012/09/14 Javascript
JS+DIV+CSS实现仿表单下拉列表效果
2015/08/18 Javascript
javascript数据类型验证方法
2015/12/31 Javascript
jQuery Mobile中的button按钮组件基础使用教程
2016/05/23 Javascript
高效的jQuery代码编写技巧总结
2017/02/22 Javascript
ReactNative 之FlatList使用及踩坑封装总结
2017/11/29 Javascript
jQuery中的$是什么意思及 $. 和 $().的区别
2018/04/20 jQuery
Vue全局分页组件的实现代码
2018/08/10 Javascript
Javascript数组方法reduce的妙用之处分享
2019/06/10 Javascript
ligerUI的ligerDialog关闭刷新的方法
2019/09/27 Javascript
jquery实现购物车基本功能
2019/10/25 jQuery
JS轮播图的实现方法
2020/08/24 Javascript
python通过装饰器检查函数参数数据类型的方法
2015/03/13 Python
利用Python的Django框架中的ORM建立查询API
2015/04/20 Python
Python类属性的延迟计算
2016/10/22 Python
python基础教程之Filter使用方法
2017/01/17 Python
Python使用matplotlib绘制三维图形示例
2018/08/25 Python
Python图片的横坐标汉字实例
2019/12/04 Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
2020/02/14 Python
PyQt5+python3+pycharm开发环境配置教程
2020/03/24 Python
使用tensorflow框架在Colab上跑通猫狗识别代码
2020/04/26 Python
三星加拿大官方网上商店:Samsung CA
2020/12/18 全球购物
2014年计算机专业个人自我评价
2014/01/19 职场文书
社团2014年植树节活动总结
2014/03/11 职场文书
保险专业求职信
2014/07/07 职场文书
项目委托协议书(最新)
2014/09/13 职场文书
保洁员岗位职责
2015/02/04 职场文书
幼儿园小班开学寄语
2015/05/27 职场文书
十二生肖观后感
2015/06/12 职场文书
HR必备:销售经理聘用合同范本
2019/08/21 职场文书
写好Python代码的几条重要技巧
2021/05/21 Python
微信告警的zabbix监控系统 监控整个NGINX集群
2022/04/18 Servers