javascript实现可键盘控制的抽奖系统


Posted in Javascript onMarch 10, 2016

制作一个简易的抽奖系统!欢迎大家学习!

javascript实现可键盘控制的抽奖系统

JS原理:建立一个数组用来存储抽奖内容,例如 iphone6 等,当点击开始的时候,开启定时器,产生一个随机数,把对应文本的innerHTML改成数组所对应的内容。

如果想让某个抽奖几率变高,可以让数组中某个值重复次数多点。接下来看代码。、

JavaScript代码

window.onload = function(){
  var data = [
    "iphone 6s plus",
    "苹果Mac 笔记本",
    "美的洗衣机",
    "凌美钢笔",
    "谢谢参与",
    "索尼入耳式耳机",
    "雷柏机械键盘",
    "《javaScript高级程序设计》",
    "精美保温杯",
    "维尼小熊一只",
    "500元中国石化加油卡",
    "爱奇艺年费会员",
    "iPad mini",
    "32G U盘",
  ];
  var bStop = true;
  var timer = null;
  var btns = document.getElementById('btns').getElementsByTagName('span');
  var text = document.getElementById('text');

  btns[0].onclick = start;
  btns[1].onclick = stop;

  document.onkeyup = function(event){
    event = event||window.event;
    if(event.keyCode==13){
      if(bStop){
        start();
      }else {
        stop();
      }
    }
  }

  function start(){
    clearInterval(timer);
    timer = setInterval(function(){
      var r = Math.floor(Math.random()*data.length);
      text.innerHTML = data[r];
    },20);
    btns[0].style.background = '#666';
    bStop = false;
  }

  function stop(){
    clearInterval(timer);
    btns[0].style.background = 'blue';
      bStop = true;
    
  }
}

html css 代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>抽奖啦</title>
  <style>
    * {
      margin: 0;
      padding:0;
    }
    #container {
      width: 500px;
      height: 200px;
      margin: 100px auto;
      background: red;
      position: relative;
      padding-top: 20px;
    }
    #container p {
      position: absolute;
      bottom: 4px;
      left: 30px;
    }
    #btns {
      position: absolute;
      left: 118px;
      bottom: 30px;
    }
    #container h1 {
      color: #fff;
      text-align: center;
    }
    #btn-start,#btn-stop {
      width: 100px;
      height: 60px;
      background: blue;
      text-align: center;
      line-height: 60px;
      font-size: 20px;
      display: inline-block;
      color: #fff;
      margin-right: 60px;
      border-radius: 10px;
      cursor: pointer;
    }
  </style>
  <script src="index.js"></script>
</head>
<body>
  <div id="container">
    <h1 id="text">iphone 6s plus</h1>
    <p>小提示:您可以按下Enter键来控制开始暂停,祝您中大奖哟</p>
    <div id="btns">
      <span id="btn-start">开始</span>
      <span id="btn-stop">停止</span>
    </div>
  </div>
</body>
</html>

希望本文所述对大家的学习有所帮助,轻松实现抽奖系统。

Javascript 相关文章推荐
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
Apr 01 Javascript
纯Javascript实现Windows 8 Metro风格实现
Oct 15 Javascript
jQuery修改CSS伪元素属性的方法
Jul 30 Javascript
实例讲解JQuery中this和$(this)区别
Dec 08 Javascript
js+css3实现旋转效果
Jan 20 Javascript
详解Angular 自定义结构指令
Jun 21 Javascript
使用命令行工具npm新创建一个vue项目的方法
Dec 27 Javascript
JS 实现微信扫一扫功能
Sep 14 Javascript
微信小程序wx:for循环的实例详解
Oct 07 Javascript
微信小程序实现简单评论功能
Nov 28 Javascript
判断文字超过2行添加展开按钮,未超过则不显示,溢出部分显示省略号
Apr 28 Javascript
浅析JavaScript中的事件委托机制跟深浅拷贝
Jan 20 Javascript
基于javascript制作微信聊天面板
Aug 09 #Javascript
关于Bootstrap弹出框无法调用问题的解决办法
Mar 10 #Javascript
TypeScript Type Innference(类型判断)
Mar 10 #Javascript
JavaScript File分段上传
Mar 10 #Javascript
ES6中非常实用的新特性介绍
Mar 10 #Javascript
ES6的新特性概览
Mar 10 #Javascript
JavaScript字符串常用的方法
Mar 10 #Javascript
You might like
PHP上传文件时文件过大$_FILES为空的解决方法
2013/11/26 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
2015/12/17 PHP
Symfony2中被遗弃的getRequest()方法分析
2016/03/17 PHP
PHP yii实现model添加默认值的方法(两种方法)
2016/11/10 PHP
php 数据结构之链表队列
2017/10/17 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
PHP实现的解汉诺塔问题算法示例
2018/08/06 PHP
PHP PDOStatement::bindValue讲解
2019/01/30 PHP
PHP _construct()函数讲解
2019/02/03 PHP
javascript常见操作汇总
2014/09/03 Javascript
javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法
2015/05/13 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
2015/10/21 Javascript
AngularJS表单验证中级篇(3)
2016/09/28 Javascript
NodeJS中的MongoDB快速入门详细教程
2016/11/11 NodeJs
node.js报错:Cannot find module 'ejs'的解决办法
2016/12/14 Javascript
vue-cli构建项目使用 less的方法
2017/10/04 Javascript
Angular2管道Pipe及自定义管道格式数据用法实例分析
2017/11/29 Javascript
angular实现页面打印局部功能的思考与方法
2018/04/13 Javascript
scrapyd schedule.json setting 传入多个值问题
2019/08/07 Javascript
vue中js判断长时间不操作界面自动退出登录(推荐)
2020/01/22 Javascript
解决vue中axios设置超时(超过5分钟)没反应的问题
2020/09/04 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 大神专访第二弹!
2014/05/20 DOTA
通过Python 接口使用OpenCV的方法
2018/04/02 Python
python将时分秒转换成秒的实例
2019/12/07 Python
Python使用进程Process模块管理资源
2020/03/05 Python
python中strip(),lstrip(),rstrip()函数的使用讲解
2020/11/17 Python
Lacoste(法国鳄鱼)加拿大官网:以标志性的POLO衫而闻名
2019/05/15 全球购物
一个J2EE项目团队的主要人员组成是什么
2012/06/04 面试题
师范毕业生个人求职信
2013/12/09 职场文书
黄河的主人教学反思
2014/02/07 职场文书
超市中秋节活动方案
2014/02/12 职场文书
工商管理本科生求职信
2014/07/13 职场文书
检讨书范文300字
2015/01/28 职场文书
2015年宣传思想工作总结
2015/05/22 职场文书
入党积极分子培养人意见
2015/06/02 职场文书
初三毕业感言
2015/07/31 职场文书