慕课网题目之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 相关文章推荐
在html页面中包含共享页面的方法
Oct 24 Javascript
javascript实现图片切换的幻灯片效果源代码
Dec 12 Javascript
javascript错误的认识不用关心内存管理
Dec 15 Javascript
js中onload与onunload的使用示例
Aug 25 Javascript
TinyMCE提交AjaxForm获取不到数据的解决方法
Mar 05 Javascript
jQuery Mobile框架中的表单组件基础使用教程
May 17 Javascript
ExtJS 4.2 Grid组件单元格合并的方法
Oct 12 Javascript
JS实现页面中所有img对象添加onclick事件及新窗口查看图片的方法
Dec 27 Javascript
JavaScript闭包_动力节点Java学院整理
Jun 27 Javascript
详解angular2 控制视图的封装模式
Dec 27 Javascript
vue 调用 RESTful风格接口操作
Aug 11 Javascript
如何在Express4.x中愉快地使用async的方法
Nov 18 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 GD 图像处理组件的常用函数总结
2010/04/28 PHP
邮箱正则表达式实现代码(针对php)
2013/06/21 PHP
关于ob_get_contents(),ob_end_clean(),ob_start(),的具体用法详解
2013/06/24 PHP
php 开发中加密的几种方法总结
2017/03/22 PHP
PHP用函数嵌入网站访问量计数器
2017/10/27 PHP
PHP Trait功能与用法实例分析
2020/06/03 PHP
StringTemplate遇见jQuery冲突的解决方法
2011/09/22 Javascript
javascript使用正则获取url上的某个参数
2014/09/04 Javascript
JavaScript父子窗体间的调用方法
2015/03/31 Javascript
jQuery实现带玻璃流光质感的手风琴特效
2015/11/20 Javascript
BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法
2016/04/03 Javascript
深入理解JavaScript内置函数
2016/06/03 Javascript
将html页面保存成图片,图片写入pdf的实现方法(推荐)
2016/09/17 Javascript
浅谈AngularJs指令之scope属性详解
2016/10/24 Javascript
PHP获取当前页面完整URL的方法
2016/12/02 Javascript
vue2.0开发实践总结之入门篇
2016/12/06 Javascript
bootstrap PrintThis打印插件使用详解
2017/02/20 Javascript
在react-router4中进行代码拆分的方法(基于webpack)
2018/03/08 Javascript
通过图带你深入了解vue的响应式原理
2019/06/21 Javascript
[02:33]2018DOTA2亚洲邀请赛赛前采访——LGD
2018/04/04 DOTA
python中的sort方法使用详解
2014/07/25 Python
深入解析Python中的变量和赋值运算符
2015/10/12 Python
解决python3中解压zip文件是文件名乱码的问题
2018/03/22 Python
在cmd中运行.py文件: python的操作步骤
2018/05/12 Python
python utc datetime转换为时间戳的方法
2019/01/15 Python
python scrapy爬虫代码及填坑
2019/08/12 Python
Django 项目重命名的实现步骤解析
2019/08/14 Python
python 循环数据赋值实例
2019/12/02 Python
Python中包的用法及安装
2020/02/11 Python
通过实例解析python and和or使用方法
2020/11/14 Python
extern是什么意思
2016/03/10 面试题
销售活动策划方案
2014/08/26 职场文书
高中生逃课检讨书
2014/10/10 职场文书
2015学校图书管理员工作总结
2015/05/11 职场文书
SpringBoot工程下使用OpenFeign的坑及解决
2021/07/02 Java/Android
使用Python开发冰球小游戏
2022/04/30 Python