慕课网题目之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 相关文章推荐
小议Function.apply()之二------利用Apply的参数数组化来提高 JavaScript程序性能
Nov 30 Javascript
基于jQuery实现的水平和垂直居中的div窗口
Aug 08 Javascript
基于JavaScript 数据类型之Boolean类型分析介绍
Apr 19 Javascript
append和appendTo的区别以及appendChild用法
Dec 24 Javascript
js清空表单数据的两种方式(遍历+reset)
Jul 18 Javascript
做web开发 先学JavaScript
Dec 12 Javascript
js表单提交和submit提交的区别实例分析
Dec 10 Javascript
高效的jquery数字滚动特效
Dec 17 Javascript
BootStrap树状图显示功能
Nov 24 Javascript
Javascript 制作图形验证码实例详解
Dec 22 Javascript
代码详解JS操作剪贴板
Feb 11 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
Oct 09 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+mysql写的简单留言本实例代码
2008/07/25 PHP
PHP生成excel时单元格内换行问题的解决方法
2010/08/26 PHP
(PHP实现)只使用++运算实现加法,减法,乘法,除法
2013/06/27 PHP
php中获取主机名、协议及IP地址的方法
2014/11/18 PHP
PHP cURL初始化和执行方法入门级代码
2015/05/28 PHP
php中smarty变量修饰用法实例分析
2015/06/11 PHP
PHP搭建大文件切割分块上传功能示例
2017/01/04 PHP
PHP基于SimpleXML生成和解析xml的方法示例
2017/07/17 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
2018/05/12 PHP
JavaScript 设计模式 安全沙箱模式
2010/09/24 Javascript
javascript数组去掉重复
2011/05/12 Javascript
node.js操作mongoDB数据库示例分享
2014/11/26 Javascript
js中unicode转码方法详解
2015/10/09 Javascript
js实现的页面矩阵图形变换特效
2016/01/26 Javascript
Angular使用ng-messages与PHP进行表单数据验证
2016/12/28 Javascript
前端页面文件拖拽上传模块js代码示例
2017/05/19 Javascript
Angular 4.0学习教程之架构详解
2017/09/12 Javascript
解决vue中监听input只能输入数字及英文或者其他情况的问题
2018/08/30 Javascript
python 运算符 供重载参考
2009/06/11 Python
ssh批量登录并执行命令的python实现代码
2012/05/25 Python
python文件和目录操作方法大全(含实例)
2014/03/12 Python
使用Python的Scrapy框架编写web爬虫的简单示例
2015/04/17 Python
Python中的descriptor描述器简明使用指南
2016/06/02 Python
Python 高级专用类方法的实例详解
2017/09/11 Python
在Python dataframe中出生日期转化为年龄的实现方法
2018/10/20 Python
python中bs4.BeautifulSoup的基本用法
2019/07/27 Python
淘宝秒杀python脚本 扫码登录版
2019/09/19 Python
Django继承自带user表并重写的例子
2019/11/18 Python
Numpy中的数组搜索中np.where方法详细介绍
2021/01/08 Python
纯CSS3实现鼠标滑过按钮动画第二节
2020/07/16 HTML / CSS
维氏瑞士军刀英国网站:Victorinox英国
2019/07/04 全球购物
美国体育用品商店:Academy Sports + Outdoors
2020/01/04 全球购物
社区八一活动方案
2014/02/03 职场文书
奠基仪式策划方案
2014/05/15 职场文书
民事答辩状格式范文
2015/05/21 职场文书
golang中切片copy复制和等号复制的区别介绍
2021/04/27 Golang