慕课网题目之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解析json数据并将json字符串转化为数组的实现方法
Dec 25 Javascript
javascript预加载图片、css、js的方法示例介绍
Oct 14 Javascript
JS实现切换标签页效果实例代码
Nov 01 Javascript
JavaScript中join()方法的使用简介
Jun 09 Javascript
JavaScript中用sort()方法对数组元素进行排序的操作
Jun 09 Javascript
JavaScript判断手机号运营商是移动、联通、电信还是其他(代码简单)
Sep 25 Javascript
JS+CSS实现的竖向简洁折叠菜单效果代码
Oct 22 Javascript
利用js定义一个导航条菜单
Mar 14 Javascript
关于javascript获取内联样式与嵌入式样式的实例
Jun 01 Javascript
jQuery实现鼠标移入移出事件切换功能示例
Sep 06 jQuery
JavaScript运行机制实例分析
Apr 11 Javascript
Vue Elenent实现表格相同数据列合并
Nov 30 Vue.js
使用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中动态修改ini配置
2014/10/14 PHP
php pthreads多线程的安装与使用
2016/01/19 PHP
使用Jquery来实现可以输入值的下拉选单 雏型
2011/12/06 Javascript
Js与下拉列表处理问题解决
2014/02/13 Javascript
JavaScript Serializer序列化时间处理示例
2014/07/31 Javascript
使用JS实现jQuery的addClass, removeClass, hasClass函数功能
2014/10/31 Javascript
jQuery实现左右切换焦点图
2015/04/03 Javascript
jquery实现根据浏览器窗口大小自动缩放图片的方法
2015/07/17 Javascript
text-align:justify实现文本两端对齐 兼容IE
2015/08/19 Javascript
js和C# 时间日期格式转换的简单实例
2016/05/28 Javascript
微信小程序  自定义创建详细介绍
2016/10/27 Javascript
深入理解js中的加载事件
2017/02/08 Javascript
JavaScript Base64 作为文件上传的实例代码解析
2017/02/14 Javascript
Vue.js实战之组件之间的数据传递
2017/04/01 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(下)
2017/04/21 Javascript
微信小程序组件 marquee实例详解
2017/06/23 Javascript
微信小程序自定义组件
2017/08/16 Javascript
在Vue项目中引入腾讯验证码服务的教程
2018/04/03 Javascript
详解在React项目中安装并使用Less(用法总结)
2019/03/18 Javascript
jQuery实现带3D切割效果的轮播图功能示例【附源码下载】
2019/04/04 jQuery
VUE+elementui面包屑实现动态路由详解
2019/11/04 Javascript
React组件设计模式之组合组件应用实例分析
2020/04/29 Javascript
Python判断Abundant Number的方法
2015/06/15 Python
pyinstaller打包opencv和numpy程序运行错误解决
2019/08/16 Python
Django Serializer HiddenField隐藏字段实例
2020/03/31 Python
python exit出错原因整理
2020/08/31 Python
HTML5未来发展趋势
2016/02/01 HTML / CSS
美国知名男士服饰品牌:Brooks Brothers(布克兄弟)
2016/08/25 全球购物
欧洲最大的拼图游戏商店:JigsawPuzzle.co.uk
2018/07/04 全球购物
西班牙最好的在线购买葡萄酒的商店:Vinoseleccion
2019/10/30 全球购物
企业管理部经理岗位职责
2013/12/24 职场文书
市场营销个人求职信范文
2014/02/02 职场文书
《风娃娃》教学反思
2014/04/19 职场文书
2014世界杯球队球队口号
2014/06/05 职场文书
幼儿园迎国庆65周年活动策划方案
2014/09/16 职场文书
迎新生欢迎词
2015/01/23 职场文书