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 相关文章推荐
html读出文本文件内容
Jan 22 Javascript
基于jQuery的树控件实现代码(asp.net+json)
Jul 11 Javascript
Javascript处理DOM元素事件实现代码
May 23 Javascript
js对table的td进行相同内容合并示例详解
Dec 27 Javascript
JQuery+CSS实现图片上放置按钮的方法
May 29 Javascript
javascript实现倒计时并弹窗提示特效
Jun 05 Javascript
vue.js 表格分页ajax 异步加载数据
Oct 18 Javascript
微信小程序实现单选选项卡切换效果
Jun 19 Javascript
vue实现简单的日历效果
Sep 24 Javascript
ES6 Iterator接口和for...of循环用法分析
Jul 31 Javascript
JS highcharts实现动态曲线代码示例
Oct 16 Javascript
vue使用echarts实现折线图
Mar 21 Vue.js
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通过文件头检测文件类型通用代码类(zip,rar等)
2010/10/19 PHP
求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路
2015/09/20 PHP
Laravel使用Queue队列的技巧汇总
2019/09/02 PHP
javascript编程起步(第七课)
2007/02/27 Javascript
js更优雅的兼容
2010/08/12 Javascript
使用js声明数组,对象在jsp页面中(获得ajax得到json数据)
2013/11/05 Javascript
javascript内置对象arguments详解
2014/03/16 Javascript
JavaScript实现将数组数据添加到Select下拉框的方法
2015/08/21 Javascript
利用bootstrapValidator验证UEditor
2016/09/14 Javascript
jQuery实现可拖拽3D万花筒旋转特效
2017/01/03 Javascript
Angular中ng-repeat与ul li的多层嵌套重复问题
2017/07/24 Javascript
mpvue构建小程序的方法(步骤+地址)
2018/05/22 Javascript
Node.js操作系统OS模块用法分析
2019/01/04 Javascript
vue无限轮播插件代码实例
2019/05/10 Javascript
vue+layui实现select动态加载后台数据的例子
2019/09/20 Javascript
优雅的使用javascript递归画一棵结构树示例代码
2019/09/22 Javascript
Angular 多模块项目构建过程
2020/02/13 Javascript
vue引入静态js文件的方法
2020/06/20 Javascript
vue pages 多入口项目 + chainWebpack 全局引用缩写说明
2020/09/21 Javascript
JS highcharts实现动态曲线代码示例
2020/10/16 Javascript
opencv改变imshow窗口大小,窗口位置的方法
2018/04/02 Python
解决tensorflow1.x版本加载saver.restore目录报错的问题
2018/07/26 Python
python pandas时序处理相关功能详解
2019/07/03 Python
浅谈HTML5新增及移除的元素
2016/06/27 HTML / CSS
HTML5拖放API实现自动生成相框功能
2020/04/07 HTML / CSS
纽约著名的服装辅料来源:M&J Trimming
2017/07/26 全球购物
世界上最大的乐器零售商:Guitar Center
2017/11/07 全球购物
维多利亚的秘密官方旗舰店:VICTORIA’S SECRET
2018/04/02 全球购物
alice McCALL官网:澳大利亚时尚品牌
2020/11/16 全球购物
英国豪华家具和经典家居饰品购物网站:OKA
2020/06/05 全球购物
后进生转化工作制度
2014/01/17 职场文书
2014年护理工作总结范文
2014/11/14 职场文书
物业项目经理岗位职责
2015/04/01 职场文书
预备党员考察意见范文
2015/06/01 职场文书
思想工作总结范文
2015/08/12 职场文书
jQuery ajax - getScript() 方法和getJSON方法
2021/05/14 jQuery