基于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 相关文章推荐
javascript GUID生成器实现代码
Oct 31 Javascript
基于jQuery的星级评分插件
Aug 12 Javascript
JS时间选择器 兼容IE6,7,8,9
Jun 26 Javascript
jQuery 删除或是清空某个HTML元素示例
Aug 04 Javascript
JS合并数组的几种方法及优劣比较
Sep 19 Javascript
jQuery源码解读之hasClass()方法分析
Feb 20 Javascript
JavaScript DSL 流畅接口(使用链式调用)实例
Mar 15 Javascript
js实现字符串转日期格式的方法
May 20 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
May 21 Javascript
详解vuex数据传输的两种方式及this.$store undefined的解决办法
Aug 26 Javascript
package.json配置文件构成详解
Aug 27 Javascript
jQuery三组基本动画与自定义动画操作实例总结
May 09 jQuery
微信小程序使用前置摄像头拍照
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实现httpclient类示例
2014/04/08 PHP
php实现图片局部打马赛克的方法
2015/02/11 PHP
PHP简单获取及判断提交来源的方法
2016/04/22 PHP
PHP验证码类ValidateCode解析
2017/01/07 PHP
不安全的常用的js写法
2009/09/15 Javascript
加载jQuery后$冲突的解决办法
2010/07/09 Javascript
从零开始学习jQuery (二) 万能的选择器
2010/10/01 Javascript
学习面向对象之面向对象的基本概念:对象和其他基本要素
2010/11/30 Javascript
Jquery replace 字符替换实现代码
2010/12/02 Javascript
jquery 设置元素相对于另一个元素的top值(实例代码)
2013/11/06 Javascript
jQuery简单图表peity.js使用示例
2014/05/02 Javascript
基于Javascript实现弹出页面效果
2016/01/01 Javascript
AngularJs  unit-testing(单元测试)详解
2016/09/02 Javascript
Vue实现双向绑定的方法
2016/12/22 Javascript
nodejs require js文件入口,在package.json中指定默认入口main方法
2018/10/10 NodeJs
JavaScript实现点击图片换背景
2020/11/20 Javascript
nodejs中使用worker_threads来创建新的线程的方法
2021/01/22 NodeJs
基于Python实现对PDF文件的OCR识别
2016/08/05 Python
Python基础练习之用户登录实现代码分享
2017/11/08 Python
python 6.7 编写printTable()函数表格打印(完整代码)
2020/03/25 Python
python调用摄像头的示例代码
2020/09/28 Python
详解用 python-docx 创建浮动图片
2021/01/24 Python
html5+svg学习指南之SVG基础知识
2014/12/17 HTML / CSS
Eastbay官网:美国最大的运动鞋网络零售商
2016/07/27 全球购物
美国伴娘礼服商店:Evening Collective
2019/10/07 全球购物
学校介绍信范文
2014/01/14 职场文书
英语专业学生个人求职信
2014/01/28 职场文书
生日主持词
2014/03/20 职场文书
祖国在我心中演讲稿450字
2014/09/05 职场文书
儿园租房协议书范本
2014/12/02 职场文书
环保证明
2015/06/23 职场文书
2016党员干部廉洁自律心得体会
2016/01/13 职场文书
《老人与海鸥》教学反思
2016/02/16 职场文书
如何使用Tkinter进行窗口的管理与设置
2021/06/30 Python
vue实现列表垂直无缝滚动
2022/04/08 Vue.js
尝试使用Python爬取城市租房信息
2022/04/12 Python