基于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插件制作 在SageCRM的查询屏幕隐藏部分行的功能
Dec 26 Javascript
基于JavaScript 声明全局变量的三种方式详解
May 07 Javascript
20行代码实现的一个CSS覆盖率测试脚本
Jul 07 Javascript
jQuery.position()方法获取不到值的安全替换方法
Mar 13 Javascript
JS排序之选择排序详解
Apr 08 Javascript
Node.js中console.log()输出彩色字体的方法示例
Dec 01 Javascript
node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例
Feb 11 Javascript
JS实现手写 forEach算法示例
Apr 29 Javascript
解决VUEX的mapState/...mapState等取值问题
Jul 24 Javascript
详解JavaScript中new操作符的解析和实现
Sep 04 Javascript
JS实现鼠标移动拖尾
Dec 27 Javascript
Vue 修改网站图标的方法
Dec 31 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中magic_quotes_gpc对unserialize的影响分析
2014/12/16 PHP
Laravel中使用阿里云OSS Composer包分享
2015/02/10 PHP
Symfony2实现在doctrine中内置数据的方法
2016/02/05 PHP
PHP session 会话处理函数
2016/06/06 PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
2017/04/18 PHP
javascript类继承机制的原理分析
2009/09/12 Javascript
jQuery 遍历-nextUntil()方法以及prevUntil()方法的使用介绍
2013/04/26 Javascript
Jquery利用mouseenter和mouseleave实现鼠标经过弹出层且可以点击
2014/02/12 Javascript
Node.js中的事件驱动编程详解
2014/08/16 Javascript
JavaScript学习笔记之JS对象
2015/01/22 Javascript
JavaScript中数组继承的简单示例
2015/07/29 Javascript
老生常谈javascript变量的命名规范和注释
2016/09/29 Javascript
微信小程序实现传递多个参数与事件处理
2019/08/12 Javascript
layui button 按钮弹出提示窗口,确定才进行的方法
2019/09/06 Javascript
使用js实现一个简单的滚动条过程解析
2019/09/10 Javascript
js实现图片粘贴到网页
2019/12/06 Javascript
js实现倒计时秒杀效果
2020/03/25 Javascript
使用preload预加载页面资源时注意事项
2020/02/03 Javascript
Vue的状态管理vuex使用方法详解
2020/02/05 Javascript
在Linux上安装Python的Flask框架和创建第一个app实例的教程
2015/03/30 Python
Python编程实现线性回归和批量梯度下降法代码实例
2018/01/04 Python
使用python进行文本预处理和提取特征的实例
2018/06/05 Python
Python3实现配置文件差异对比脚本
2019/11/18 Python
基于python实现获取网页图片过程解析
2020/05/11 Python
python 使用建议与技巧分享(四)
2020/08/18 Python
基于HTML5代码实现折叠菜单附源码下载
2015/11/27 HTML / CSS
Canvas系列之滤镜效果
2019/02/12 HTML / CSS
英国网上香水店:Fragrance Direct
2016/07/20 全球购物
大学自我鉴定
2013/12/20 职场文书
便利店的创业计划书
2014/01/15 职场文书
爱心捐款倡议书范文
2014/05/12 职场文书
2014基建处领导班子“四风”对照检查材料思想汇报
2014/10/04 职场文书
优秀少先队辅导员事迹材料
2014/12/24 职场文书
业务员辞职信范文
2015/03/02 职场文书
经典人生语录分享:不畏将来,不念过去,笑对当下
2019/12/12 职场文书
win11如何查看端口是否被占用? Win11查看端口是否占用的技巧
2022/04/05 数码科技