基于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 相关文章推荐
PJBlog插件 防刷新的在线播放器
Oct 25 Javascript
用jquery实现自定义风格的滑动条实现代码
Apr 26 Javascript
用javascript模仿ie的自动完成类似自动完成功的表单
Dec 12 Javascript
利用JS来控制键盘的上下左右键(示例代码)
Dec 14 Javascript
SpringMVC返回json数据的三种方式
Dec 10 Javascript
Ionic实现仿通讯录点击滑动及$ionicscrolldelegate使用分析
Jan 18 Javascript
jQuery 调用WebService 实例讲解
Jun 28 Javascript
jquery PrintArea 实现票据的套打功能(代码)
Mar 17 Javascript
超简单的Vue.js环境搭建教程
Mar 17 Javascript
详解webpack性能优化——DLL
Oct 20 Javascript
JavaScript函数柯里化实现原理及过程
Dec 02 Javascript
JavaScript中遍历的十种方法总结
Dec 15 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
apache mysql php 源码编译使用方法
2012/05/03 PHP
深入了解 register_globals (附register_globals=off 网站打不开的解决方法)
2012/06/27 PHP
慎用preg_replace危险的/e修饰符(一句话后门常用)
2013/06/19 PHP
PHP、Python和Javascript的装饰器模式对比
2015/02/03 PHP
ThinkPHP中create()方法自动验证表单信息
2017/04/28 PHP
php防止表单重复提交实例讲解
2019/02/11 PHP
基于JQuery的Select选择框的华丽变身
2011/08/23 Javascript
基于JQuery实现滚动到页面底端时自动加载更多信息
2014/01/31 Javascript
js加减乘除丢失精度问题解决方法
2014/05/16 Javascript
javascript里绝对用的上的字符分割函数总结
2014/07/31 Javascript
JavaScript实现数组随机排序的方法
2015/06/26 Javascript
Ztree新增角色和编辑角色回显问题的解决
2016/10/25 Javascript
javascript中活灵活现的Array对象详解
2016/11/30 Javascript
基于vue2框架的机器人自动回复mini-project实例代码
2017/06/13 Javascript
基于 Vue.js 2.0 酷炫自适应背景视频登录页面实现方式
2018/01/17 Javascript
webpack4.x CommonJS模块化浅析
2018/11/09 Javascript
javascript Canvas动态粒子连线
2020/01/01 Javascript
JavaScript冒泡算法原理与实现方法深入理解
2020/06/04 Javascript
JavaScript this指向相关原理及实例解析
2020/07/10 Javascript
JS实现京东商品分类侧边栏
2020/12/11 Javascript
python中去空格函数的用法
2014/08/21 Python
详解Python的Django框架中的中间件
2015/07/24 Python
Python logging管理不同级别log打印和存储实例
2018/01/19 Python
Python列表推导式与生成器表达式用法示例
2018/02/08 Python
Python read函数按字节(字符)读取文件的实现
2019/07/03 Python
python Tensor和Array对比分析
2020/01/08 Python
Python netmiko模块的使用
2020/02/14 Python
python的help函数如何使用
2020/06/11 Python
python如何爬取动态网站
2020/09/09 Python
HTML5表单验证特性(知识点小结)
2020/03/10 HTML / CSS
Styleonme中文网:韩国高档人气品牌
2017/06/21 全球购物
C++:memset ,memcpy和strcpy的根本区别
2013/04/27 面试题
中医学专业自荐信范文
2014/04/01 职场文书
个人欠款担保书
2014/05/20 职场文书
VUE中的v-if与v-show区别介绍
2022/03/13 Vue.js
golang用type-switch判断interface的实际存储类型
2022/04/14 Golang