慕课网题目之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 相关文章推荐
js操作Xml(向服务器发送Xml,处理服务器返回的Xml)(IE下有效)
Jan 30 Javascript
通过js简单实现将一个文本内容转译成加密文本
Oct 22 Javascript
键盘上一张下一张兼容IE/google/firefox等浏览器
Jan 28 Javascript
控制文字内容的显示与隐藏示例
Jun 11 Javascript
JavaScript极简入门教程(三):数组
Oct 25 Javascript
JS实现网页Div层Clone拖拽效果
Sep 26 Javascript
浅谈jQuery中ajaxPrefilter的应用
Aug 01 Javascript
封装的dialog插件 基于bootstrap模态对话框的简单扩展
Aug 10 Javascript
JS定时检测任务任务完成后执行下一步的解决办法
Dec 22 Javascript
ES6新特性之字符串的扩展实例分析
Apr 01 Javascript
使用pkg打包Node.js应用的方法步骤
Oct 19 Javascript
高性能js数组去重(12种方法,史上最全)
Dec 21 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 在文件指定行插入数据的代码
2010/05/08 PHP
php GeoIP的使用教程
2011/03/09 PHP
PHP在线生成二维码代码(google api)
2013/06/03 PHP
PHP 加密 Password Hashing API基础知识点
2020/03/02 PHP
原生js操作checkbox用document.getElementById实现
2013/10/12 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
2014/05/08 Javascript
JS实现单行文字不间断向上滚动的方法
2015/01/29 Javascript
JavaScript中操作字符串小结
2015/05/04 Javascript
javascript实现图片轮播效果
2016/01/20 Javascript
PHP抓取HTTPS内容和错误处理的方法
2016/09/30 Javascript
node.js基础知识小结
2018/02/26 Javascript
JS逻辑运算符短路操作实例分析
2018/07/09 Javascript
vue 组件的封装之基于axios的ajax请求方法
2018/08/11 Javascript
webstorm中配置Eslint的两种方式及差异比较详解
2018/10/19 Javascript
微信小程序云函数添加数据到数据库的方法
2020/03/04 Javascript
[01:39](回顾)各路豪强针锋相对,几经鏖战四强产生
2014/07/01 DOTA
python 异常处理总结
2016/10/18 Python
Python基础之getpass模块详细介绍
2017/08/10 Python
利用Python如何批量更新服务器文件
2018/07/29 Python
python 递归深度优先搜索与广度优先搜索算法模拟实现
2018/10/22 Python
Python和Bash结合在一起的方法
2020/11/13 Python
CSS3的transition和animation的用法实例介绍
2014/08/20 HTML / CSS
CSS3实现红包抖动效果
2020/12/23 HTML / CSS
巴西最大的在线约会网站:ParPerfeito
2018/07/11 全球购物
Orvis官网:自1856年以来,优质服装、飞钓装备等
2018/12/17 全球购物
澳大利亚购买太阳镜和眼镜网站:Glamoureyes
2020/09/22 全球购物
如何在.net Winform里面显示PDF文档
2012/09/11 面试题
酒店前台接待岗位职责
2013/12/03 职场文书
工商管理毕业生推荐信
2013/12/24 职场文书
竞选班干部演讲稿300字
2014/08/20 职场文书
党员专题组织生活会发言材料
2014/10/17 职场文书
保研推荐信格式
2015/03/25 职场文书
律师催款函范文
2015/06/24 职场文书
商业计划书之服装
2019/09/09 职场文书
Nginx + consul + upsync 完成动态负载均衡的方法详解
2021/03/31 Servers
win10下go mod配置方式
2021/04/25 Golang