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 相关文章推荐
js清空form表单中的内容示例
May 20 Javascript
JS限制文本框只能输入数字和字母方法
Feb 28 Javascript
js运动动画的八个知识点
Mar 12 Javascript
JS动态添加iframe的代码
Sep 14 Javascript
在页面中引入js的两种方法(推荐)
Aug 29 Javascript
Ionic学习日记实现验证码倒计时
Feb 08 Javascript
vue加载自定义的js文件方法
Mar 13 Javascript
详解React 的几种条件渲染以及选择
Oct 23 Javascript
原生JS实现逼真的图片3D旋转效果详解
Feb 16 Javascript
ES6 Symbol数据类型的应用实例分析
Jun 26 Javascript
js实现简单的打印表格
Jan 15 Javascript
Vue使用JSEncrypt实现rsa加密及挂载方法
Feb 07 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+APACHE实现用户论证的方法
2006/10/09 PHP
smarty模板引擎中自定义函数的方法
2015/01/22 PHP
分享php分页的功能模块
2015/06/16 PHP
PHPMailer发送邮件
2016/12/28 PHP
PHP获取日期对应星期、一周日期、星期开始与结束日期的方法
2018/06/22 PHP
PHP基于curl模拟post提交json数据示例
2018/06/22 PHP
jscript之List Excel Color Values
2007/06/13 Javascript
js模拟实现Array的sort方法
2007/12/11 Javascript
jQuery设置div一直在页面顶部显示的方法
2013/10/24 Javascript
JavaScript-RegExp对象只能使用一次问题解决方法
2014/06/23 Javascript
node.js中使用socket.io制作命名空间
2014/12/15 Javascript
jQuery插件Tmpl的简单使用方法
2015/04/27 Javascript
JS实现跟随鼠标立体翻转图片的方法
2015/05/04 Javascript
js 创建对象 经典模式全面了解
2016/08/16 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
2016/09/06 Javascript
js实现目录链接,内容跟着目录滚动显示的简单实例
2016/10/15 Javascript
jQuery实现的简单排序功能示例【冒泡排序】
2017/01/13 Javascript
vue拦截器Vue.http.interceptors.push使用详解
2017/04/22 Javascript
npm 更改默认全局路径以及国内镜像的方法
2018/05/16 Javascript
jQuery的Ajax接收java返回数据方法
2018/08/11 jQuery
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
2019/09/03 Javascript
vue router-link 默认a标签去除下划线的实现
2020/11/06 Javascript
python 文件与目录操作
2008/12/24 Python
python数据预处理之将类别数据转换为数值的方法
2017/07/05 Python
python距离测量的方法
2018/03/06 Python
PYTHON基础-时间日期处理小结
2018/05/05 Python
Python3.8对可迭代解包的改进及用法详解
2019/10/15 Python
python的列表List求均值和中位数实例
2020/03/03 Python
人力资源专业推荐信
2013/11/29 职场文书
英文自荐信
2013/12/15 职场文书
大卫科波菲尔读书笔记
2015/06/30 职场文书
会议主持词结束语
2015/07/03 职场文书
网络舆情信息简报
2015/07/21 职场文书
Jupyter Notebook 如何修改字体和大小以及更改字体样式
2021/06/03 Python
javascript canvas实现雨滴效果
2021/06/09 Javascript
MySQL的存储过程和相关函数
2022/04/26 MySQL