慕课网题目之js实现抽奖系统功能


Posted in Javascript onSeptember 19, 2017

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

要求实现功能:

1.点击左侧按键,开始抽奖,点击右侧按键,停止抽奖;

2.敲击回车键,开始抽奖,再次敲击回车键,停止抽奖;

3.开始抽奖后,左侧按钮变色;

html:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>抽奖</title>
  <link rel="stylesheet" href="style.css">
  <script src="eventUtil.js"></script>
  <script src="js.js"></script>
</head>
<body>
<div class="box">
  <div id="header">开始抽奖啦!</div>
  <div id="btn">
    <span id="start">开始</span>
    <span id="stop">结束</span>
  </div>
</div>
</body>
</html>

css:

body{
  margin: 0;
  padding: 0;
}
.box{
  width: 400px;
  height: 200px;
  border: 1px solid #0C4E7C;
  margin: 0 auto;
}
#header{
  color:darkred;
  font-size: 24px;
  text-align: center;
  width: 400px;
  height: 60px;
  line-height: 60px;
}
#btn{
  width: 200px;
  overflow: hidden;
  margin: 30px auto 0;
}
#btn span{
  cursor: pointer;
  border: 2px solid #a09a09;
  border-radius: 7px;
  margin-right: 10px;
  color: #000;
  display: inline-block;
  height: 40px;
  width: 80px;
  background-color: #f2ec55;
  line-height: 40px;
  text-align: center;
}

JavaScript:

js.js:
var date = ["谢谢参与", "谢谢参与", "谢谢参与", "50元话费", "ipad", "佳能相机", "苹果手机", "3DS", "switch", "1000元超市购物卡"];
var timer = null;
var flag = 0;


window.onload = function () {

  // var header = document.getElementById("header");优化前
  var start = document.getElementById("start");
  var stop = document.getElementById("stop");
//鼠标抽奖
  eventUtil.addHandler(start, "click", getStart);
  eventUtil.addHandler(stop, "click", getStop);
//键盘抽奖;
  document.onkeyup = function (event) {
    var e = event || window.event;
    //检测按键键值;
    // console.log(e.keyCode);
    if (e.keyCode === 13) {
      if (flag === 0) {
        getStart();
        flag = 1;
      } else {
        getStop();
        flag = 0;
      }
    }
  };

  function getStart() {
    clearInterval(timer);
    var header = document.getElementById("header");//优化后
    timer = setInterval(function () {
      //代码优化前
      //var x = parseInt(Math.random()*10);
      var random = Math.floor(Math.random() * date.length);
      header.innerHTML = date[random];
    }, 50);
    start.style.backgroundColor = "#999";
    flag = 1;
  }

  function getStop() {
    clearInterval(timer);
    start.style.backgroundColor = "#f2ec55";
    flag = 0;
  }
};

eventUtil.js

var eventUtil = {
  getEvent:function (event) {
    return event?event:window.event;
  },
  getType: function (event) {
    return event.type;
  },
  getTarget:function (event) {
    return event.target||event.srcElement;
  },
  //阻止冒泡
  stopPropagation:function (event) {
    if(event.stopPropagation){
      event.stopPropagation();
    }else {
      event.cancelBubble=true;
    }
  },
  //阻止事件默认行为;
  preventDefault:function(event){
    if(event.preventDefault){
      event.preventDefault();
    }else {
      event.returnValue = false;
    }
  },
  //添加具柄;
  addHandler: function (element, type, Handler) {
    if (element.ç) {
      element.addEventListener(type, Handler, false);
    } else if (element.attachEvent) {
      element.attachEvent("on" + type, Handler);
    } else {
      element["on" + type] = Handler;
    }
  },
  //删除具柄;
  removeHandler: function (element, type, Handler) {
    if (element.removeEventListener) {
      element.removeEventListener(type, Handler, false);
    } else if (element.detachEvent) {
      element.detachEvent("on" + type, Handler);
    } else {
      element["on" + type] = null;
    }
  }
};

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

Javascript 相关文章推荐
用javascript getComputedStyle获取和设置style的原理
Oct 10 Javascript
javascript 数组排序函数
Aug 20 Javascript
JavaScript 全角转半角部分
Oct 28 Javascript
jquery获取颜色在ie和ff下的区别示例介绍
Mar 28 Javascript
javascript解析xml实现省市县三级联动的方法
Jul 25 Javascript
js实现Select列表内容自动滚动效果代码
Aug 20 Javascript
jQuery+jsp实现省市县三级联动效果(附源码)
Dec 03 Javascript
JS中setTimeout的巧妙用法前端函数节流
Mar 24 Javascript
H5图片压缩与上传实例
Apr 21 Javascript
详解JS中统计函数执行次数与执行时间
Sep 04 Javascript
nuxt引入组件和公共样式的操作
Nov 05 Javascript
vue报错function () { [native code] },无法出现我们想要的内容 Unknown custom element
Apr 11 Vue.js
使用vue与jquery实时监听用户输入状态的操作代码
Sep 19 #jQuery
JavaScript事件处理程序详解
Sep 19 #Javascript
jQuery选择器之属性筛选选择器用法详解
Sep 19 #jQuery
vue小图标favicon不显示的解决方案
Sep 19 #Javascript
基于jQuery选择器之表单对象属性筛选选择器的实例
Sep 19 #jQuery
前端把html表格生成为excel表格的实例
Sep 19 #Javascript
基于js中的原型(全面讲解)
Sep 19 #Javascript
You might like
php实现从ftp服务器上下载文件树到本地电脑的程序
2009/02/10 PHP
php获取$_POST同名参数数组的实现介绍
2013/06/30 PHP
PHP基于imap获取邮件实例
2014/11/11 PHP
Linux安装配置php环境的方法
2016/01/14 PHP
简介JavaScript中的setDate()方法的使用
2015/06/11 Javascript
基于JavaScript实现类似于百度学术高级检索功能
2016/03/02 Javascript
JS动态添加的div点击跳转到另一页面实现代码
2017/09/30 Javascript
解决vue组件中使用v-for出现告警问题及v for指令介绍
2017/11/11 Javascript
原生JS实现获取及修改CSS样式的方法
2018/09/04 Javascript
Vue-CLI3.x 设置反向代理的方法
2018/12/06 Javascript
JS温故而知新之变量提升和时间死区
2019/01/27 Javascript
js实现电灯开关效果
2021/01/19 Javascript
[03:31]DOTA2英雄基础教程 大地之灵
2013/12/17 DOTA
[03:00]《DAC最前线》之欧美新秀VS老将
2015/02/01 DOTA
python执行get提交的方法
2015/04/29 Python
python如何统计序列中元素
2020/07/31 Python
Python文件读写常见用法总结
2019/02/22 Python
python scatter散点图用循环分类法加图例
2019/03/19 Python
导致python中import错误的原因是什么
2020/07/01 Python
Python字符串三种格式化输出
2020/09/17 Python
OpenCV+python实现膨胀和腐蚀的示例
2020/12/21 Python
html5实现图片转圈的动画效果——让页面动起来
2017/10/16 HTML / CSS
Canvas制作的下雨动画的示例
2018/03/06 HTML / CSS
西班牙英格列斯百货英国官网:El Corte Inglés英国
2017/10/30 全球购物
英国排名第一的冲浪店:Ann’s Cottage
2020/06/21 全球购物
数控技术专科生自我评价
2014/01/08 职场文书
教师自我反思材料
2014/02/14 职场文书
经销商订货会主持词
2014/03/27 职场文书
祖国在我心中演讲稿600字
2014/05/04 职场文书
党的群众路线教育实践活动心得体会(乡镇)
2014/11/03 职场文书
导游词400字
2015/02/13 职场文书
质量整改通知单
2015/04/21 职场文书
鲁冰花观后感
2015/06/10 职场文书
有关水浒传的读书笔记
2015/06/25 职场文书
2016年小学“我们的节日·中秋节”活动总结
2016/04/05 职场文书
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
2022/04/30 Vue.js