慕课网题目之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 对象的定义方法
Jan 10 Javascript
JTrackBar水平拖动效果
Jul 15 Javascript
Javascript 刷新全集常用代码
Nov 22 Javascript
理解JavaScript中的对象 推荐
Jan 09 Javascript
addEventListener 的用法示例介绍
May 07 Javascript
仿百度联盟对联广告实现代码
Aug 30 Javascript
jQuery中Ajax的get、post等方法详解
Jan 20 Javascript
解析JavaScript面向对象概念中的Object类型与作用域
May 10 Javascript
jQuery实现页面点击后退弹出提示框的方法
Aug 24 Javascript
js原生Ajax的封装和原理详解
Mar 11 Javascript
web页面和微信小程序页面实现瀑布流效果
Sep 26 Javascript
Vue CLI3中使用compass normalize的方法
May 30 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
PHP简单实现文本计数器的方法
2016/04/28 PHP
静态图片的十一种滤镜效果--不支持Ie7及非IE浏览器。
2007/03/06 Javascript
js实现的日期操作类DateTime函数代码
2010/03/16 Javascript
JavaScript中的style.display属性操作
2013/03/27 Javascript
解析javascript 浏览器关闭事件
2013/07/08 Javascript
Extjs4实现两个GridPanel之间数据拖拽功能具体方法
2013/11/21 Javascript
在JavaScript中处理字符串之fontcolor()方法的使用
2015/06/08 Javascript
JavaScript实现上下浮动的窗口效果代码
2015/10/12 Javascript
JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果
2015/11/26 Javascript
javascript实现tab响应式切换特效
2016/01/29 Javascript
JS实现CheckBox复选框全选、不选或全不选功能
2020/07/28 Javascript
一个用jquery写的判断div滚动条到底部的方法【推荐】
2016/04/29 Javascript
jquery代码规范让代码越来越好看
2017/02/03 Javascript
Bootstrap中data-target 到底是什么
2017/02/14 Javascript
JS完成画圆圈的小球
2017/03/07 Javascript
React教程之封装一个Portal可复用组件的方法
2018/01/02 Javascript
浅谈在vue中用webpack打包之后运行文件的问题以及相关配置方法
2018/02/21 Javascript
详解关于vue-area-linkage走过的坑
2018/06/27 Javascript
vue 录制视频并压缩视频文件的方法
2018/07/27 Javascript
JavaScript利用键盘码控制div移动
2020/03/19 Javascript
python 使用get_argument获取url query参数
2017/04/28 Python
Python上下文管理器和with块详解
2017/09/09 Python
解决Python的str强转int时遇到的问题
2018/04/09 Python
Python3.7 新特性之dataclass装饰器
2019/05/27 Python
Python 中Django安装和使用教程详解
2019/07/03 Python
Django 缓存配置Redis使用详解
2019/07/23 Python
python实现矩阵和array数组之间的转换
2019/11/29 Python
CSS3 透明色 RGBA使用介绍
2013/08/06 HTML / CSS
养殖人员的创业计划书范文
2013/12/26 职场文书
办公室岗位职责
2014/02/12 职场文书
教师国庆节演讲稿范文2014
2014/09/21 职场文书
自我工作评价范文
2015/03/06 职场文书
商务英语求职信范文
2015/03/19 职场文书
学生会生活部工作总结2015
2015/03/31 职场文书
正确使用MySQL update语句
2021/05/26 MySQL
MySQL系列之九 mysql查询缓存及索引
2021/07/02 MySQL