基于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中事件与动画的总结分享
May 24 Javascript
BootStrap中Datetimepicker和uploadify插件应用实例小结
May 26 Javascript
JS简单设置下拉选择框默认值的方法
Aug 20 Javascript
微信小程序使用radio显示单选项功能【附源码下载】
Dec 11 Javascript
JS实现的汉字与Unicode码相互转化功能分析
May 25 Javascript
三分钟学会用ES7中的Async/Await进行异步编程
Jun 14 Javascript
使用 vue 实例更好的监听事件及vue实例的方法
Apr 22 Javascript
Vue.js路由实现选项卡简单实例
Jul 24 Javascript
vue实现抖音时间转盘
Sep 08 Javascript
Nuxt默认模板、默认布局和自定义错误页面的实现
May 11 Javascript
实例分析javascript中的异步
Jun 02 Javascript
JS实现百度搜索框
Feb 25 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
全国FM电台频率大全 - 4 山西省
2020/03/11 无线电
php读取csv实现csv文件下载功能
2013/12/18 PHP
php内嵌函数用法实例
2015/03/20 PHP
Laravel validate error处理,ajax,json示例
2019/10/25 PHP
鼠标图片振动代码
2006/07/06 Javascript
在JavaScript中typeof的用途介绍
2013/04/11 Javascript
如何动态的导入js文件具体该怎么实现
2014/01/14 Javascript
JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)
2014/10/17 Javascript
js实现照片墙功能实例
2015/02/05 Javascript
vue.js初学入门教程(1)
2016/11/03 Javascript
JavaScript模块化之使用requireJS按需加载
2017/04/12 Javascript
详解前端路由实现与react-router使用姿势
2017/08/07 Javascript
JS实现520 表白简单代码
2018/05/21 Javascript
解决Js先触发失去焦点事件再执行点击事件的问题
2018/08/30 Javascript
vue+element UI实现树形表格带复选框的示例代码
2019/04/16 Javascript
JS前端知识点 运算符优先级,URL编码与解码,String,Math,arguments操作整理总结
2019/06/27 Javascript
Vue实现base64编码图片间的切换功能
2019/12/04 Javascript
vue 使用post/get 下载导出文件操作
2020/08/07 Javascript
[02:42]DOTA2英雄基础教程 杰奇洛
2013/12/23 DOTA
python实现将文本转换成语音的方法
2015/05/28 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
2017/10/11 Python
Django 实现下载文件功能的示例
2018/03/06 Python
python将秒数转化为时间格式的实例
2018/09/16 Python
Django Sitemap 站点地图的实现方法
2019/04/29 Python
对Python函数设计规范详解
2019/07/19 Python
python简单的三元一次方程求解实例
2020/04/02 Python
解决python父线程关闭后子线程不关闭问题
2020/04/25 Python
PyQt5的相对布局管理的实现
2020/08/07 Python
维珍澳洲航空官网:Virgin Australia
2017/09/08 全球购物
内容编辑个人求职信
2013/12/10 职场文书
党校学习思想汇报
2014/01/06 职场文书
美发店5.1活动方案
2014/01/24 职场文书
环境卫生标语
2014/06/09 职场文书
2014领导班子“四风问题”对照检查材料思想汇报(执法局)
2014/09/21 职场文书
简易离婚协议书范本2014
2014/10/15 职场文书
奶茶店的创业计划书该怎么写?
2019/07/15 职场文书