js实现抽奖的两种方法


Posted in Javascript onMarch 19, 2020

本文实例为大家分享了js实现抽奖的具体代码,供大家参考,具体内容如下

抽奖活动的原理还是很简单的,通过代码一目了然,如果看不懂就私聊我,可以私下交流!

方法一:使用table写一个随机抽奖

这是html+js代码

<!DOCTYPE html>
<html lang="en">
 
<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">
 <link rel="stylesheet" href="css/test2.css" >
 <title>抽奖</title>
</head>
 
<body>
 <div class="content">
  <div class="top">
   抽奖活动
  </div>
  <div class="body">
   <table>
    <tr>
     <th>百度</th>
     <th>腾讯</th>
     <th>阿里</th>
     <th>京东</th>
     <th>华为</th>
    </tr>
    <tr>
     <th>滴滴</th>
     <th>蚂蚁金服</th>
     <th>乐视</th>
     <th>中国电网</th>
     <th>中石化</th>
    </tr>
    <tr>
     <th>美团</th>
     <th>乐视</th>
     <th>小米</th>
     <th>网易</th>
     <th>酷我</th>
    </tr>
    <tr>
     <th>爱奇艺</th>
     <th>盛大</th>
     <th>短文学</th>
     <th>浅墨诗韵</th>
     <th>浪子一秋</th>
    </tr>
   </table>
  </div>
  <div class="bottom">
   <input type="button" name="" id="button" class="button" value="开始" onclick="toStart(this)">
  </div>
 </div>
</body>
<script type="text/javascript">
 var timer;
 var button = document.querySelector("#button");
 function toStart() {
  // 启动定时器
  if (timer == undefined) {
   timer = setInterval(changeStyle, 100);
   button.setAttribute("value", "停止");
  } else {
   clearInterval(timer);
   timer = undefined;
   button.setAttribute("value", "开始");
  }
 }
 // 改变样式
 var a, b;
 function changeStyle() {
  var tb = document.querySelector("table");
  console.log(a);
  if (a != undefined) {
   tb.rows[a].cells[b].style.backgroundColor = "white";
  }
  // 
  // 获取要操作的元素
  a = parseInt(Math.random() * 4);
  b = parseInt(Math.random() * 5);
  // console.log(a);
  var col = tb.rows[a].cells[b];
  col.style.backgroundColor = "red";
 }
 
 
</script>
 
</html>

方法二:使用span标签写

html+js代码如下

<!DOCTYPE html>
<html lang="en">
 
<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">
 <link rel="stylesheet" href="css/test2.css" >
 <title>抽奖</title>
</head>
 
<body>
 <div class="content">
  <div class="top">
   抽奖活动
  </div>
  <div class="body" id="body">
 
  </div>
  <div class="bottom">
   <input type="button" name="" id="button" class="button" value="开始" onclick="toStart()">
  </div>
 </div>
</body>
<script type="text/javascript">
 // 获取要操作的元素
 var div = document.getElementById("body");
 // 动态添加span
 for (var i = 0; i < 25; i++) {
  // 创建一个新的标签
  var el = document.createElement("span");
  // 给标签设置内容
  el.innerText = i;
  // 添加子元素
  div.appendChild(el);
 }
 
 var timer;
 var button = document.querySelector("#button");
 function toStart() {
  // 启动定时器
  if (timer == undefined) {
   timer = setInterval(changeStyle, 100);
   button.setAttribute("value", "停止");
  } else {
   clearInterval(timer);
   timer = undefined;
   button.setAttribute("value", "开始");
  }
 }
 // 改变样式
 var selection;
 function changeStyle() {
  var spans = document.getElementsByTagName("span");
  if (selection != undefined) {
   console.log(selection);
   spans[selection].style.backgroundColor = "white";
  }
  selection = parseInt(Math.random() * 25);
  var spans = document.getElementsByTagName("span");
  var selectSpan = spans[selection];
  selectSpan.style.backgroundColor = "red";
 }
 
</script>
 
</html>

两个页面的css代码

*{
 margin: 0;
 padding: 0;
}
body{
 display: block;
}
.content{
 width: 500px;
 margin: auto;
}
.top{
 text-align: center;
 height: 50px;
 color: red;
 font-size: 30px;
 
}
table{
 width: 100%;
 border: 1px solid red;
 border-spacing: 0;
}
th{
 border: 1px dashed rgb(189, 189, 86);
 height: 40px;
}
.bottom{
 height: 50px;
 margin-top: 20px;
 text-align: center;
}
.button{
 background-color: #4CAF50; /* Green */
 border: none;
 color: white;
 padding: 15px 32px;
 text-align: center;
 text-decoration: none;
 display: inline-block;
 font-size: 16px;
}
 
 
/* test2-1 */
.body{
 width: 512px;
 height: 260px;
 border: 1px solid red;
}
span{
 display: inline-block;
 width: 100px;
 height: 50px;
 border: 1px dashed #b1da1f;
 line-height: 50px;
 text-align: center;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript中函数声明优先于变量声明的实例分析
Mar 01 Javascript
ajax上传时参数提交不更新等相关问题
Dec 11 Javascript
JS获取各种浏览器窗口大小的方法
Jan 14 Javascript
获取当前点击按钮的id用this.id实现
Mar 17 Javascript
jQuery实现的简单提示信息插件
Dec 08 Javascript
js实现适配不同的屏幕大小
Apr 10 Javascript
VUE实现表单元素双向绑定(总结)
Aug 08 Javascript
简述Angular 5 快速入门
Nov 04 Javascript
js技巧之十几行的代码实现vue.watch代码
Jun 09 Javascript
vue 框架下自定义滚动条(easyscroll)实现方法
Aug 29 Javascript
Vue-cli打包后部署到子目录下的路径问题说明
Sep 02 Javascript
js实现纯前端压缩图片
Nov 16 Javascript
js实现九宫格抽奖
Mar 19 #Javascript
在Vue.js中使用TypeScript的方法
Mar 19 #Javascript
JS实现长图上下滚动效果
Mar 19 #Javascript
JavaScript实现简单计算器
Mar 19 #Javascript
jQuery实现颜色打字机的完整代码
Mar 19 #jQuery
webpack 动态批量加载文件的实现方法
Mar 19 #Javascript
vue-cli3项目升级到vue-cli4 的方法总结
Mar 19 #Javascript
You might like
php 获取mysql数据库信息代码
2009/03/12 PHP
PHP中单例模式与工厂模式详解
2017/02/17 PHP
浅谈PHP进程管理
2019/03/08 PHP
关于viewport,Ext.panel和Ext.form.panel的关系
2009/05/07 Javascript
javascript之通用简单的table选项卡实现(二)
2010/05/09 Javascript
关于URL中的特殊符号使用介绍
2011/11/03 Javascript
再谈querySelector和querySelectorAll的区别与联系
2012/04/20 Javascript
JS Map 和 List 的简单实现代码
2013/07/08 Javascript
子窗体与父窗体传值示例js代码
2013/08/01 Javascript
Jquery倒计时源码分享
2014/05/16 Javascript
jQuery学习笔记之jQuery原型属性和方法
2014/06/09 Javascript
Bootstrop实现多级下拉菜单功能
2016/11/24 Javascript
nodejs构建本地web测试服务器 如何解决访问静态资源问题
2017/07/14 NodeJs
iview中Select 选择器多选校验方法
2018/03/15 Javascript
JS实现带阴历的日历功能详解
2019/01/24 Javascript
python实现RSA加密(解密)算法
2016/02/17 Python
Python中的Descriptor描述符学习教程
2016/06/02 Python
Python 2.x如何设置命令执行的超时时间实例
2017/10/19 Python
Python实现统计给定列表中指定数字出现次数的方法
2018/04/11 Python
python3实现多线程聊天室
2018/12/12 Python
Python PyInstaller库基本使用方法分析
2019/12/12 Python
Python基于time模块表示时间常用方法
2020/06/18 Python
Python importlib模块重载使用方法详解
2020/10/13 Python
纯css3制作网站后台管理面板
2014/12/30 HTML / CSS
CSS3的Flexbox布局的简明入门指南
2016/04/08 HTML / CSS
Mytheresa英国官网:拥有160多个奢侈品品牌
2016/10/09 全球购物
GUESS德国官网:美国牛仔服装品牌
2017/02/14 全球购物
C和C++经典笔试题附答案解析
2014/08/18 面试题
试述DBMS的主要功能
2016/11/13 面试题
英文自荐信格式
2013/11/28 职场文书
办理信用卡工作证明
2014/01/11 职场文书
施工员岗位职责
2015/02/10 职场文书
交通事故代理词范文
2015/05/23 职场文书
Golang map映射的用法
2022/04/22 Golang
MySQL的存储过程和相关函数
2022/04/26 MySQL
nginx rewrite功能使用场景分析
2022/05/30 Servers