慕课网题目之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 相关文章推荐
asp 取文本框名称代码
Dec 02 Javascript
SlideView 图片滑动(扩展/收缩)展示效果
Aug 01 Javascript
关于捕获用户何时点击window.onbeforeunload的取消事件
Mar 06 Javascript
jquery iframe操作详细解析
Nov 20 Javascript
JQuery解析HTML、JSON和XML实例详解
Mar 29 Javascript
javascript实现无缝上下滚动特效
Dec 16 Javascript
web 前端常用组件之Layer弹出层组件
Sep 22 Javascript
JavaScript中双符号的运算详解
Mar 12 Javascript
vue中多路由表头吸顶实现的几种布局方式
Apr 12 Javascript
layer弹窗在键盘按回车将反复刷新的实现方法
Sep 25 Javascript
浅谈vue 多个变量同时赋相同值互相影响
Aug 05 Javascript
微信小程序实现下拉加载更多商品
Dec 29 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安装攻略:常见问题解答(二)
2006/10/09 PHP
php获取url字符串截取路径的文件名和扩展名的函数
2010/01/22 PHP
让PHP开发者事半功倍的十大技巧小结
2010/04/20 PHP
PHP测试程序运行时间的类
2012/02/05 PHP
php日期转时间戳,指定日期转换成时间戳
2012/07/17 PHP
php中++i 与 i++ 的区别
2012/08/08 PHP
PHP标准库(PHP SPL)详解
2019/03/16 PHP
ExtJs3.0中Store添加 baseParams 的Bug
2010/03/10 Javascript
jquery插件之easing使用
2010/08/19 Javascript
使用jquery hover事件实现表格的隔行换色功能示例
2013/09/03 Javascript
JQuery插件fancybox无法在弹出层使用左右键的解决办法
2013/12/25 Javascript
JS获取文本框,下拉框,单选框的值的简单实例
2014/02/26 Javascript
JavaScript两种跨域技术全面介绍
2014/04/16 Javascript
深入浅析JavaScript函数前面的加号和叹号
2016/07/09 Javascript
微信小程序 Image API实例详解
2016/09/30 Javascript
纯js实现悬浮按钮组件
2016/12/17 Javascript
javascript实现前端成语点击验证优化
2020/06/24 Javascript
在react项目中使用antd的form组件,动态设置input框的值
2020/10/24 Javascript
Python的爬虫包Beautiful Soup中用正则表达式来搜索
2016/01/20 Python
Python的Socket编程过程中实现UDP端口复用的实例分享
2016/03/19 Python
python实现将一个数组逆序输出的方法
2018/06/25 Python
Python玩转加密的技巧【推荐】
2019/05/13 Python
一篇文章弄懂Python中所有数组数据类型
2019/06/23 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
2020/04/08 Python
台湾乐天市场:日本No.1的网路购物网站
2017/03/22 全球购物
文件中有一组整数,要求排序后输出到另一个文件中
2012/01/04 面试题
如何转换一个字符串到enum值
2014/04/12 面试题
农场厂长岗位职责
2013/12/28 职场文书
培训专员岗位职责
2014/02/26 职场文书
环境保护与污染治理求职信
2014/07/16 职场文书
党员演讲稿
2014/09/04 职场文书
六年级学生期末评语
2014/12/26 职场文书
城管年度个人总结
2015/02/28 职场文书
钢琴师观后感
2015/06/12 职场文书
mysql知识点整理
2021/04/05 MySQL
IIS服务器中设置HTTP重定向访问HTTPS
2022/04/29 Servers