1.需求说明

某公司年终抽奖,需要有如下功能

1)可以根据实际情况设置到场人数的最大值

2) 点击“开始”,大屏幕滚动,点击“停止”,获奖者的编号出现在大屏幕上

3)在界面里显示全部奖项获奖人编号

4)不重复获奖

5)不会因为输入错误而导致抽奖结果异常。

2.代码呈上

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
  2. <html>
  3. <head>
  4. <title>某公司周年庆抽奖</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  6. <script language="javascript">
  7. var timer;
  8. var flag = new Array(100);
  9. var existingnum = new Array(100);
  10. var clickTimes = 0;
  11. var randnum;
  12. var cellnum =1;
  13. var mobile;
  14. var num ;
  15. function check_input(){
  16. var input = document.getElementById("real_num").value;
  17. var re = /^[1-9]+[0-9]*]*$/;
  18. if (!re.test(input)){
  19. alert("请输入正整数");
  20. window.location.href=window.location.href;
  21. return false;
  22. }
  23. }
  24. //get the random numbers from the mobile array every 0.05s
  25. function setTimer(){
  26. timer = setInterval("getRandNum();",50);
  27. document.getElementById("start").disabled = true;
  28. document.getElementById("end").disabled = false;
  29. }
  30. function getRandNum(){
  31. document.getElementById("result").value = mobile[GetRnd(0,num)];
  32. }
  33. function GetRnd(min,max){
  34. randnum = parseInt(Math.random()*(max-min+1));
  35. return randnum;
  36. }
  37. //------------------------------------------------
  38. //turn the input's running down
  39. function clearTimer(){
  40. noDupNum();
  41. clearInterval(timer);
  42. document.getElementById("start").disabled = false;
  43. document.getElementById("end").disabled = true;
  44. }
  45. // Re defined array:change the length of the array and delete the checked one
  46. function noDupNum(){
  47. mobile.removeEleAt(randnum);
  48. var o = 0;
  49. for(p=0; p<mobile.length;p++){
  50. if(typeof mobile[p]!="undefined"){
  51. mobile[o] = mobile[p];
  52. o++;
  53. }
  54. }
  55. num = mobile.length-1;
  56. }
  57. function setValues(){
  58. document.getElementById(cellnum).value = document.getElementById("result").value ;
  59. cellnum++;
  60. }
  61. function set_array(){
  62. var real_num = document.getElementById("real_num").value ;
  63. mobile= new Array(real_num);
  64. var o = 0;
  65. for(i=1; i<=real_num;i++){
  66. mobile[o] = i;
  67. o++;
  68. }
  69. num = mobile.length-1;
  70. document.getElementById("set_number").disabled = true;
  71. }
  72. Array.prototype.removeEleAt = function(dx){
  73. if(isNaN(dx)||dx>this.length){return false;}
  74. this.splice(dx,1);
  75. }
  76. </script>
  77. </head>
  78. <body>
  79. <center>
  80. <div id="main">
  81. <div>
  82. <h1>获奖小伙伴</h1>
  83. <p>
  84. <input id="result" type="text" size="30" style="height:130px;width:800px;border:2px solid red;font-size:120;" readonly/>
  85. </p>
  86. <p>
  87. <input id="start" type="button" value="开始" style="border: 1px solid; border-color: #aaa 000 #000 #aaa;width:4em; background: #fc0;" onclick="setTimer()" />
  88. <input id="end" type="button" value="停" style="border: 1px solid; border-color: #aaa 000 #000 #aaa;width:4em; background: #fc0;"onclick="clearTimer();setValues();" disabled/>
  89. </p>
  90. <p><strong>一等奖(1名)</strong></p>
  91. <table width="190" height="30" border="1">
  92. <tr>
  93. <td><input name="text1" type="text" id="3" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="28" readonly/></td>
  94. </tr>
  95. </table>
  96. <p>二等奖(2名)</p>
  97. <table width="380" height="30" border="1">
  98. <tr>
  99. <td><input name="text2" type="text" id="2" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="28" readonly/></td>
  100. <td><input name="text3" type="text" id="1" style="height:30px;width:190px;border:1px solid red;font-size:25;" size="20" readonly/></td>
  101. </tr>
  102. </table>
  103. </div>
  104. </div>
  105. <p></p>
  106. <p></p>
  107. <div id="setter" style="border:1px solid;width:45em">
  108. <h3>系统设置</h3>
  109. <table width="300" height="30" border="1">
  110. <tr>
  111. <td>活动人数</td>
  112. <td><input type="text" id="real_num" style="width:11em"></td>
  113. <td><input id="set_number" type="button" value="设置" style="border: 1px solid; border-color: #aaa 000 #000 #aaa;width:4em; background: #fc0;" onclick="check_input();set_array();"/></td>
  114. </tr>
  115. <tr>
  116. </tr>
  117. </table>
  118. <br/>
  119. <input id="set_number" type="button" value="重新开始抽奖" style="border: 1px solid; border-color: #aaa 000 #000 #aaa;width:45em;height: 3em;background: #fc0;"  onclick="window.location.href=window.location.href;"/>
  120. <p></p>
  121. </div>
  122. <center>
  123. </body>
  124. </html>

3.丑陋截图

我很丑,但是我很温柔~

JavaScript编写简单的抽奖程序的更多相关文章

  1. 编写简单的Mapreduce程序并部署在Hadoop2.2.0上运行

    今天主要来说说怎么在Hadoop2.2.0分布式上面运行写好的 Mapreduce 程序. 可以在eclipse写好程序,export或用fatjar打包成jar文件. 先给出这个程序所依赖的Mave ...

  2. C#编写简单的聊天程序

    这是一篇基于Socket进行网络编程的入门文章,我对于网络编程的学习并不够深入,这篇文章是对于自己知识的一个巩固,同时希望能为初学的朋友提供一点参考.文章大体分为四个部分:程序的分析与设计.C#网络编 ...

  3. C#编写简单的聊天程序(转)

    这是一篇基于Socket进行网络编程的入门文章,我对于网络编程的学习并不够深入,这篇文章是对于自己知识的一个巩固,同时希望能为初学的朋友提供一点参考.文章大体分为四个部分:程序的分析与设计.C#网络编 ...

  4. HTML 和 JavaScript 编写简单的 404 界面

    编写简单的 404 界面,也可以用来做 500 报错界面,还会飘东西,特别好,蛮漂亮的! <!DOCTYPE html> <html> <head> <met ...

  5. 如何用visual studio2013编写简单C语言程序

    vc++6.0 作为经典版本,虽然已经几乎淘汰,但还是有很多的初学者在使用.但当他们使用vs2013时会发现界面和操作和vc++6.0有了极大的不同,不知该如何 操作.随着vs2013的普及,更多人使 ...

  6. Unity3D实现简单的抽奖程序

    下面是具体的代码,注意,我这里用到了NGUI这个插件.大概的原理很简单,就用了2张图片Sprite,同时向下移动,当上面一张图片移动到下面一张图片原来的位置时,就把这2张图片向上移到初始的位置.这时, ...

  7. 学习笔记之javascript编写简单计算器

      感觉自己的的实力真的是有待提高,在编写计算器的过程中,出现了各种各样的问题,暴露了自己的基础不扎实,逻辑思维能力不够,学得知识不能运用到自己的demo中区.先介绍一些这个这个计算器的整体思路.大致 ...

  8. Python学习笔记(二)使用Sublime Text编写简单的Python程序()

    一.使用Sublime Text编写Python 1.点击“文件” →”新建文件“ 2.点击”文件“→”保存“,并保存为.py文件 此时已经创建好Python文件了,接下来就可以编写Python程序了 ...

  9. 用jQuery编写简单九宫格抽奖

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. loadrunner具体实例教你如何进行结果分析

    1.对于吞吐量,单位时间内吞吐量越大,说明服务器的处理能越好,而请求数仅表示客户端向服务器发出的请求数,与吞吐量一般是成正比关系. 2.一般瓶颈应该就是某个因素在不断增加,某个相关性能指标也会不断增加 ...

  2. E2PROM与Flash的引脚图

    E2PROM(24C02):

  3. Dynamics AX 2012 R2 Service Middle Tier WCF WCF转发

    参考了蒋金楠老师08年的文章.好吧,那时候我才大二.大三,大神果然是大神. http://www.cnblogs.com/artech/archive/2008/09/01/1280939.html ...

  4. 日常css和js小知识点记录

    2015-6-29 1.<meta name="viewport" content="width=device-width,user-scalable=no&quo ...

  5. JavaEE基础(二十六)/网络

    1.网络编程(网络编程概述) A:计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信 ...

  6. win7下80端口被(Pid=4)占用的解决方法

    首先介绍一种网上普遍的方法,就是查找占据80端口的进程,然后关闭它就行了. 1.运行cmd,然后输入netstat -a -n -o,回车:2.查看开头几行包含0.0.0.0:80的那一行最后的pid ...

  7. Python模块学习

    6. Modules If you quit from the Python interpreter and enter it again, the definitions you have made ...

  8. PHP json_encode() 函数介绍

    在 php 中使用 json_encode() 内置函数(php > 5.2)可以使用得 php 中数据可以与其它语言很好的传递并且使用它. 这个函数的功能是将数值转换成json数据存储格式. ...

  9. Robotium中定位Android客户端疑难元素

    对于没有id,没有text,只有一个图标的疑难元素(ImageView),应该如何定位呢?拿人人网个人主页的设置按钮举例: 我最终是通过定位页面上可以定位到的其他元素,然后通过其他元素与疑难元素相对坐 ...

  10. randperm函数

    randperm功能是随机打乱一个数字序列. 语法格式: y = torch.randperm(n) y是把1到n这些数随机打乱得到的一个数字序列. th> torch.randperm() [ ...