200行HTML + JavaScript实现年会抽奖程序

  

本文实例为大家分享了js实现年会抽奖程序的具体代码,供大家参考,具体内容如下

  

<强>需求分析

  

1。多轮抽奖,每轮只有3个环节:展示奖品图,人名闪动,停止闪动确定中奖名单
  2.中奖分级,例如试用期员工不能中二等奖或以上
  3.每轮抽奖的中奖人数不同,每个人只能中一次奖
  4.可临时加场,现场输入奖品名,数量。额外窗口输入,避免被观众看到修改过程。
  5.本地记录每轮的奖品和中奖名单
  6 .全屏显示。不确定现场的屏幕分辨率,故核心部分固定1024 * 768,居中显示,背景拉伸铺满全屏。

  

 200行HTML + JavaScript实现年会抽奖程序”> <br/>
  </p>
  <p> <>强技术选型</强> </p>
  <p>搞桌面程序第一时间就想到了这几个框架:。虽然都可行,但感觉开发不够便捷。而且谁知道年会现场那台电脑有没有对应的运行时库。</p>
  <p>最后经同事给的灵感想到了用JavaScript做,选定了,即没。有选电子是它需要搭开发环境。</p>
  <p>既然连开发环境都懒得搭,那自然也用不了。实际上也没必要,小学生才用牛刀杀鸡。</p>
  <p> <强>代码开源</强> </p>
  <p>开源在,年会抽奖程序。文末会贴一下当前的版本,但以github上的为准。</p>
  <p>使用方法<br/>
  启动<br/>
  Windows的启动方法:到这里下载,解压出来,把代码的整个目录拖动到上。</p>
  <p>其它操作系统按官方说明做:</p>
  <blockquote>
  <p>//你/cd/路径应用<br/>/路径//西北。<br/>
  </p>
  </引用>
  <p>是NW.js的二进制文件。
  & lt; !DOCTYPE html>
  & lt; html>
  & lt; head>
  & lt;元charset=皍tf - 8”比;
  & lt; script>
  var赢得=nw.Window.get ()
  赢了。resizeTo (1024、768)
  赢了。函数(0,0)
  & lt;/script>
  & lt;风格类型=   & lt;/head>      & lt; body>   & lt; div id=叭萜鳌北?   & lt; div id="标题"在XX公司年会& lt;/div>   & lt; div id=霸才獭弊4墙逼访枋? lt;/div>   & lt; img id="图像"/比;   & lt; div id="列表"祝辞& lt;/div>   & lt;/div>   & lt; script>   var fs=要求(fs)   var步骤=零   var一步=0   var名称=零   var="状态      var盘=. getelementbyid(盘)   var图像=. getelementbyid('图像')   var=. getelementbyid列表(列表)      函数reloadConf(函数){   fs.readFile(的名字。ini”、“use utf8”、功能(呃,数据){   名称=data.split (“\ n”)。地图(x=比;x.split (" "))   })   fs.readFile(’。/步骤。json, use utf8,函数(呃,数据){   步骤=eval(数据)   如果函数func ()   })   }      函数saveConf(函数){   fs.writeFile(’。/步骤。json, JSON.stringify(步骤)、功能(err) {   如果(err) {   警报(err)   }   })   fs.writeFile(’。/名称。ini”,名字。地图(x=比;x.join (" ")) . join (“\ n”)、功能(err) {   如果(err) {   警报(err)   }   })   }      函数showPic(数据){   阀瓣。innerHTML=data.disc   的形象。src=https://www.yisu.com/zixun/data.image   image.style。显示=澳诹?   list.style。显示='没有'   而(list.hasChildNodes ()) {   list.removeChild (list.firstChild)   }   }      函数showBlink(数据){   阀瓣。innerHTML=data.disc   image.style。显示='没有'   list.style。显示='块'   var跨度=[]   (var=0;我& lt;data.count;+ + i) {   var跨度=document.createElement(跨度)   list.appendChild(跨度)   spans.push(跨度)   }      函数doBlink () {   如果(状态==showBlink) {   names.sort(函数(){   返回0.5 - math . random ()   })   (var=0;我& lt;data.count;+ + i) {   [我]。innerHTML[我][0]=名称   }   window.requestAnimationFrame (doBlink)   }   }      window.requestAnimationFrame (doBlink)   }      函数showList(数据){   阀瓣。innerHTML=data.disc   image.style。显示='没有'   list.style。显示='块'   而(list.hasChildNodes ()) {   list.removeChild (list.firstChild)   }   (var=0;我& lt;data.list.length;+ + i) {   var跨度=document.createElement(跨度)   跨度。innerHTML=data.list[我]   list.appendChild(跨度)   }   }      函数nextStep () {   var data=https://www.yisu.com/zixun/steps(步骤)   如果(状态==showPic) {   数据。=数据列表。列表| | []   如果(data.list。长度比;0){   状态=' showList '   showList(数据)   其他}{   状态=' showBlink '   showBlink(数据)   }   }else if(状态==showBlink) {   如果(data.list。长度比;0){   状态=' showList '   showList(数据)   }   }else if(状态==showList) {   如果(步骤& lt;(步骤。长度- 1)){   + +的步骤   状态="   nextStep ()   }   其他}{   状态=' showPic '   showPic(数据)   }   }      函数previousStep () {   如果(步骤比;0){   ——一步   }   状态="   nextStep ()   }      函数drawPrize () {   如果(状态==showBlink) {   var data=https://www.yisu.com/zixun/steps(步骤)   的名字。排序(函数(a, b) {   如果([1]

200行HTML + JavaScript实现年会抽奖程序