慕课网题目之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宝典学习笔记(上)
Jan 10 Javascript
jQuery链使用指南
Jan 20 Javascript
javascript获取元素离文档各边距离的方法
Feb 13 Javascript
jquery实现页面虚拟键盘特效
Aug 08 Javascript
JavaScript的设计模式经典之建造者模式
Feb 24 Javascript
第二篇Bootstrap起步
Jun 21 Javascript
安装vue-cli报错 -4058 的解决方法
Oct 19 Javascript
如何从零开始利用js手写一个Promise库详解
Apr 19 Javascript
Vuejs开发环境搭建及热更新【推荐】
Sep 07 Javascript
Vue中点击active并第一个默认选中功能的实现
Feb 24 Javascript
用JS实现选项卡
Mar 23 Javascript
使用JS前端技术实现静态图片局部流动效果
Aug 05 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
同时提取多条新闻中的文本一例
2006/10/09 PHP
如何跨站抓取别的站点的页面的补充
2006/10/09 PHP
亲密接触PHP之PHP语法学习笔记1
2006/12/17 PHP
php smarty模版引擎中的缓存应用
2009/12/02 PHP
PHP命名空间(namespace)的使用基础及示例
2014/08/18 PHP
PHP通过引用传递参数用法分析
2016/12/01 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
精心挑选的12款优秀的基于jQuery的手风琴效果插件和教程
2012/08/22 Javascript
jquery实现图片等比例缩放以及max-width在ie中不兼容解决
2013/03/21 Javascript
node.js中的fs.futimes方法使用说明
2014/12/17 Javascript
JavaScript中的操作符==与===介绍
2014/12/31 Javascript
html的DOM中Event对象onabort事件用法实例
2015/01/21 Javascript
移动手机APP手指滑动切换图片特效附源码下载
2015/11/30 Javascript
JavaScript基本语法学习教程
2016/01/14 Javascript
jQuery实现的鼠标经过时变宽的效果(附demo源码)
2016/04/28 Javascript
探讨AngularJs中ui.route的简单应用
2016/11/16 Javascript
jQuery无刷新上传之uploadify简单代码
2017/01/17 Javascript
微信小程序引入模块中wxml、wxss、js的方法示例
2019/08/09 Javascript
解决vue props传Array/Object类型值,子组件报错的情况
2020/11/07 Javascript
基于JavaScript实现简单扫雷游戏
2021/01/02 Javascript
python+opencv实现的简单人脸识别代码示例
2017/11/14 Python
Python smtplib实现发送邮件功能
2018/05/22 Python
对python中类的继承与方法重写介绍
2019/01/20 Python
Python实现的大数据分析操作系统日志功能示例
2019/02/11 Python
python实现websocket的客户端压力测试
2019/06/25 Python
详解python statistics模块及函数用法
2019/10/27 Python
python filecmp.dircmp实现递归比对两个目录的方法
2020/05/22 Python
HTML中使用SVG与SVG预定义形状元素介绍
2013/06/28 HTML / CSS
斯洛伐克电子产品购物网站:DATART
2020/04/05 全球购物
什么是组件架构
2016/05/15 面试题
毕业生个人的求职信范文
2013/12/03 职场文书
运动会跳远广播稿
2014/02/04 职场文书
教师个人事迹材料
2014/12/17 职场文书
环卫处个人工作总结
2015/03/04 职场文书
我的兄弟姐妹观后感
2015/06/15 职场文书
运动会跳远广播稿
2015/08/19 职场文书