慕课网题目之js实现抽奖系统功能

发布时间 - 2026-01-11 03:18:35    点击率:

本文实例为大家分享了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;
    }
  }
};

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# js  # 抽奖系统  # 原生js实现简易抽奖系统  # JavaScript实现简单抽奖系统  # 基于JavaScript实现抽奖系统  # JavaScript-定时器0~9抽奖系统详解(代码)  # js组件SlotMachine实现图片切换效果制作抽奖系统  # 基于javascript实现简单的抽奖系统  # javascript实现可键盘控制的抽奖系统  # 用Javascript轻松制作一套简单的抽奖系统  # js实现简单的抽奖系统  # 回车键  # 佳能  # 鼠标  # 大家分享  # 话费  # 具体内容  # 大家多多  # 键值  # px  # width  # padding  # border  # solid  # height  # header  # btn  # box  # id  # stop  # margin 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何撰写建站申请书?关键要点有哪些?  详解vue.js组件化开发实践  Laravel如何实现本地化和多语言支持?(i18n教程)  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  Laravel怎么实现验证码(Captcha)功能  如何用已有域名快速搭建网站?  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  WordPress 子目录安装中正确处理脚本路径的完整指南  深圳网站制作培训,深圳哪些招聘网站比较好?  如何用景安虚拟主机手机版绑定域名建站?  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  如何在阿里云域名上完成建站全流程?  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何快速使用云服务器搭建个人网站?  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】  如何快速搭建高效香港服务器网站?  如何在Windows虚拟主机上快速搭建网站?  Laravel Docker环境搭建教程_Laravel Sail使用指南  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  如何快速配置高效服务器建站软件?  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  网易LOFTER官网链接 老福特网页版登录地址  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  网站制作壁纸教程视频,电脑壁纸网站?  详解jQuery中的事件  如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】  如何在橙子建站中快速调整背景颜色?  HTML 中如何正确使用模板变量为元素的 name 属性赋值  ,在苏州找工作,上哪个网站比较好?  什么是javascript作用域_全局和局部作用域有什么区别?  如何在万网主机上快速搭建网站?  如何在 Pandas 中基于一列条件计算另一列的分组均值  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  python中快速进行多个字符替换的方法小结  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  Python文件流缓冲机制_IO性能解析【教程】  零服务器AI建站解决方案:快速部署与云端平台低成本实践  如何快速查询网址的建站时间与历史轨迹?  如何挑选优质建站一级代理提升网站排名?  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  魔方云NAT建站如何实现端口转发?