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  THIS详解 面向对象
Mar 25 Javascript
LazyForm jQuery plugin 定制您的CheckBox Radio和Select
Oct 24 Javascript
JavaScript 10件让人费解的事情
Feb 15 Javascript
jQuery setTimeout()函数使用方法
Apr 07 Javascript
js表头排序实现方法
Jan 16 Javascript
JS和css实现检测移动设备方向的变化并判断横竖屏幕
May 25 Javascript
Bootstrap的图片轮播示例代码
Aug 31 Javascript
js点击文本框后才加载验证码实例代码
Oct 20 Javascript
Bootstrap每天必学之按钮(一)
Nov 24 Javascript
jQuery中的通配符选择器使用总结
May 30 Javascript
vue-cli与webpack处理静态资源的方法及webpack打包的坑
May 15 Javascript
JavaScript判断对象和数组的两种方法
May 31 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
ueditor 1.2.6 使用方法说明
2013/07/24 PHP
PHP面试常用算法(推荐)
2016/07/22 PHP
php版微信开发之接收消息,自动判断及回复相应消息的方法
2016/09/23 PHP
Laravel给生产环境添加监听事件(SQL日志监听)
2017/06/19 PHP
php + WebUploader实现图片批量上传功能
2019/05/06 PHP
新手入门常用代码集锦
2007/01/11 Javascript
JS模拟自动点击的简单实例
2013/08/08 Javascript
将Datatable转化成json发送前台实现思路
2013/09/06 Javascript
js锁屏解屏通过对$.ajax进行封装实现
2014/07/31 Javascript
深入理解Javascript中this的作用域
2014/08/12 Javascript
javascript实现checkBox的全选,反选与赋值
2015/03/12 Javascript
JavaScript如何实现组合列表框中元素移动效果
2016/03/01 Javascript
在Web关闭页面时发送Ajax请求的实现方法
2019/03/07 Javascript
js中arguments对象的深入理解
2019/05/14 Javascript
vue实现将一个数组内的相同数据进行合并
2019/11/07 Javascript
谈一谈vue请求数据放在created好还是mounted里好
2020/07/27 Javascript
一文秒懂nodejs中的异步编程
2021/01/28 NodeJs
Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
2016/06/14 Python
Python实现按中文排序的方法示例
2018/04/25 Python
python 抓包保存为pcap文件并解析的实例
2019/07/23 Python
Python线上环境使用日志的及配置文件
2019/07/28 Python
python PIL/cv2/base64相互转换实例
2020/01/09 Python
Python 实现打印单词的菱形字符图案
2020/04/12 Python
python实现密码验证合格程序的思路详解
2020/06/01 Python
快速解释如何使用pandas的inplace参数的使用
2020/07/23 Python
个人合作协议书范本
2014/04/18 职场文书
董事长助理工作职责范本
2014/07/01 职场文书
写得不错的求职信范文
2014/07/11 职场文书
代领毕业证委托书
2014/08/02 职场文书
国庆节促销广告语2014
2014/09/19 职场文书
总经理岗位职责
2015/02/04 职场文书
教师党员自我评价范文
2015/03/04 职场文书
2015年团支书工作总结
2015/04/03 职场文书
初中生物教学反思
2016/02/20 职场文书
总结三种用 Python 作为小程序后端的方式
2022/05/02 Python
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
2022/05/25 SQL Server