基于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 相关文章推荐
论坛里点击别人帖子下面的回复,回复标题变成“回复 24# 的帖子”
Jun 14 Javascript
jquery 中ajax执行的优先级
Jun 22 Javascript
javascript实现动态表头及表列的展现方法
Jul 14 Javascript
jquery实现的淡入淡出下拉菜单效果
Aug 25 Javascript
BootStrap Validator对于隐藏域验证和程序赋值即时验证的问题浅析
Dec 01 Javascript
layer提示框添加多个按钮选择的实例
Sep 12 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
Oct 25 Javascript
微信小程序云开发获取文件夹下所有文件(推荐)
Nov 14 Javascript
JavaScript canvas实现跟随鼠标事件
Feb 10 Javascript
基于JavaScript实现表格隔行换色
May 08 Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
Jun 17 Javascript
浅析vue中的nextTick
Dec 28 Vue.js
微信小程序使用前置摄像头拍照
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
PHP调用三种数据库的方法(2)
2006/10/09 PHP
PHP中防止SQL注入实现代码
2011/02/19 PHP
Zend Framework实现将session存储在memcache中的方法
2016/03/22 PHP
表单提交验证类
2006/07/14 Javascript
jquery 使用点滴函数代码
2011/05/20 Javascript
Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因
2013/05/07 Javascript
js获得地址栏?问号后参数的方法
2013/08/08 Javascript
JavaScript lastIndexOf方法入门实例(计算指定字符在字符串中最后一次出现的位置)
2014/10/17 Javascript
JS实现页面载入时随机显示图片效果
2016/09/07 Javascript
vue.js初学入门教程(2)
2016/11/07 Javascript
80%应聘者都不及格的JS面试题
2017/03/21 Javascript
JavaScript数据结构与算法之二叉树实现查找最小值、最大值、给定值算法示例
2019/03/01 Javascript
微信小程序之几种常见的弹框提示信息实现详解
2019/07/11 Javascript
java和js实现的洗牌小程序
2019/09/30 Javascript
基于小程序请求接口wx.request封装的类axios请求
2020/07/02 Javascript
[07:12]2014DOTA2西雅图国际邀请赛 黑马Liquid专题采访
2014/07/12 DOTA
简单介绍Python中的try和finally和with方法
2015/05/05 Python
Java Web开发过程中登陆模块的验证码的实现方式总结
2016/05/25 Python
Python正则抓取新闻标题和链接的方法示例
2017/04/24 Python
利用 python 对目录下的文件进行过滤删除
2017/12/27 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
2018/05/18 Python
对python中类的继承与方法重写介绍
2019/01/20 Python
Python绘制频率分布直方图的示例
2019/07/08 Python
django orm模块中的 is_delete用法
2020/05/20 Python
什么是python类属性
2020/06/10 Python
python3.7 openpyxl 在excel单元格中写入数据实例
2020/09/01 Python
基于OpenCV的路面质量检测的实现
2020/11/04 Python
python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解
2021/01/26 Python
安德玛加拿大官网:Under Armour加拿大
2019/10/02 全球购物
软件测试工程师面试问题精选
2016/10/28 面试题
证券期货行业个人的自我评价
2013/12/26 职场文书
荷叶圆圆教学反思
2014/02/01 职场文书
四个太阳教学反思
2014/02/01 职场文书
就业表自我评价分享
2014/02/06 职场文书
高中历史教学反思
2014/02/08 职场文书
无婚姻登记记录证明
2015/06/18 职场文书