慕课网题目之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 &amp; DHTML 实例编程(教程)DOM基础和基本API
Jun 02 Javascript
extjs中grid中嵌入动态combobox的应用
Jan 01 Javascript
javascript的回调函数应用示例
Feb 20 Javascript
理解javascript回调函数
Dec 28 Javascript
JavaScript 函数模式详解及示例
Sep 07 Javascript
使用vue.js实现联动效果的示例代码
Jan 10 Javascript
node.js实现登录注册页面
Apr 08 Javascript
学习使用Bootstrap栅格系统
May 11 Javascript
在iframe中使bootstrap的模态框在父页面弹出问题
Aug 07 Javascript
《javascript少儿编程》location术语总结
May 27 Javascript
angular-tree-component的使用详解
Jul 30 Javascript
vue 插件的方法代码详解
Jun 06 Javascript
使用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
五款常用mysql slow log分析工具的比较分析
2011/05/22 PHP
PHP实现的文件操作类及文件下载功能示例
2016/12/24 PHP
PHP使用PHPExcel实现批量上传到数据库的方法
2017/06/08 PHP
laravel实现批量更新多条记录的方法示例
2017/10/22 PHP
PHP 计算两个特别大的整数实例代码
2018/05/07 PHP
php使用curl伪造来源ip和refer的方法示例
2018/05/08 PHP
jQuery学习笔记之DOM对象和jQuery对象
2010/12/22 Javascript
jQuery EasyUI API 中文文档 可调整尺寸
2011/09/29 Javascript
JSON无限折叠菜单编写实例
2013/12/16 Javascript
nodejs实现遍历文件夹并统计文件大小
2015/05/28 NodeJs
JavaScript实现的SHA-1加密算法完整实例
2016/02/02 Javascript
浅谈String.valueOf()方法的使用
2016/06/06 Javascript
Angular4学习教程之DOM属性绑定详解
2018/01/04 Javascript
Angular浏览器插件Batarang介绍及使用
2018/02/07 Javascript
vue 使用html2canvas将DOM转化为图片的方法
2018/09/11 Javascript
vue中使用protobuf的过程记录
2018/10/26 Javascript
详解如何快速配置webpack多入口脚手架
2018/12/28 Javascript
Vue使用Proxy代理后仍无法生效的解决
2020/11/13 Javascript
Python爬取网易云音乐上评论火爆的歌曲
2017/01/19 Python
python数据分析数据标准化及离散化详解
2018/02/26 Python
浅谈django orm 优化
2018/08/18 Python
详解如何在Apache中运行Python WSGI应用
2019/01/02 Python
python同步两个文件夹下的内容
2019/08/29 Python
使用Fabric自动化部署Django项目的实现
2019/09/27 Python
pycharm新建Vue项目的方法步骤(图文)
2020/03/04 Python
高考考python编程是真的吗
2020/07/20 Python
在 Python 中使用 MQTT的方法
2020/08/18 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
2020/11/02 Python
计算机软件个人的自荐信范文
2013/12/01 职场文书
关于是否需要写商业计划书
2014/02/07 职场文书
简单租房协议书
2014/04/09 职场文书
合作意向书
2014/07/30 职场文书
2014幼儿教师个人工作总结
2014/12/03 职场文书
先进员工事迹材料
2014/12/20 职场文书
2016年教代会开幕词
2016/03/04 职场文书
Java设计模式中的命令模式
2022/04/28 Java/Android