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 相关文章推荐
seajs1.3.0源码解析之module依赖有序加载
Nov 07 Javascript
js 使用form表单select类实现级联菜单效果
Dec 19 Javascript
jQuery基本选择器选择元素使用介绍
Apr 18 Javascript
js定时调用方法成功后并停止调用示例
Apr 08 Javascript
使用pjax实现无刷新更改页面url
Feb 05 Javascript
jquery利用命名空间移除绑定事件的方法
Mar 11 Javascript
JS实现部分HTML固定页面顶部随屏滚动效果
Dec 24 Javascript
JS得到当前时间的方法示例
Mar 24 Javascript
JS计算距当前时间的时间差实例
Dec 29 Javascript
浅谈Vue render函数在ElementUi中的应用
Sep 06 Javascript
Vue项目服务器部署之子目录部署方法
May 12 Javascript
layui动态加载多表头的实例
Sep 05 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
虹吸壶是谁发明的?煮出来的咖啡好喝吗
2021/03/04 冲泡冲煮
一个PHP的String类代码
2010/04/20 PHP
thinkPHP模板算术运算相关函数用法分析
2016/07/12 PHP
php删除数组指定元素实现代码
2017/05/03 PHP
php实现多站点共用session实现单点登录的方法详解
2019/09/18 PHP
解析arp病毒背后利用的Javascript技术附解密方法
2007/08/06 Javascript
JS+CSS实现自动改变切换方向图片幻灯切换效果的方法
2015/03/02 Javascript
js实现刷新iframe的方法汇总
2015/04/27 Javascript
JS操作XML实例总结(加载与解析XML文件、字符串)
2015/12/08 Javascript
详解Javascript中的Object对象
2016/02/28 Javascript
原生js实现无缝轮播图效果
2017/01/11 Javascript
Ajax基础知识详解
2017/02/17 Javascript
promise处理多个相互依赖的异步请求(实例讲解)
2017/08/03 Javascript
10个最优秀的Node.js MVC框架
2017/08/24 Javascript
使用ionic(选项卡栏tab) icon(图标) ionic上拉菜单(ActionSheet) 实现通讯录界面切换实例代码
2017/10/20 Javascript
jQuery实现参数自定义的文字跑马灯效果
2018/08/15 jQuery
Angular父子组件通过服务传参的示例方法
2018/10/31 Javascript
Python多进程并发与多线程并发编程实例总结
2018/02/08 Python
Django 表单模型选择框如何使用分组
2019/05/16 Python
python 应用之Pycharm 新建模板默认添加编码格式-作者-时间等信息【推荐】
2019/06/17 Python
Django实现web端tailf日志文件功能及实例详解
2019/07/28 Python
python快速编写单行注释多行注释的方法
2019/07/31 Python
Python 实例方法、类方法、静态方法的区别与作用
2019/08/14 Python
关于阿里云oss获取sts凭证 app直传 python的实例
2019/08/20 Python
HTML5的结构和语义(5):交互
2008/10/17 HTML / CSS
英国最大的网上药品商店:Chemist Direct
2017/12/16 全球购物
学校十一活动方案
2014/02/01 职场文书
行政助理工作职责范本
2014/03/04 职场文书
社区党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
考试作弊检讨书
2014/10/21 职场文书
亚布力滑雪场导游词
2015/02/09 职场文书
保研推荐信格式
2015/03/25 职场文书
呐喊读书笔记
2015/06/30 职场文书
2015年国庆节广播稿
2015/08/19 职场文书
高中诗歌鉴赏教学反思
2016/02/16 职场文书
MySql中的json_extract函数处理json字段详情
2022/06/05 MySQL