本文实例为大家分享了js实现年会抽奖程序的具体代码,供大家参考,具体内容如下
<强>需求分析强>
1。多轮抽奖,每轮只有3个环节:展示奖品图,人名闪动,停止闪动确定中奖名单
2.中奖分级,例如试用期员工不能中二等奖或以上
3.每轮抽奖的中奖人数不同,每个人只能中一次奖
4.可临时加场,现场输入奖品名,数量。额外窗口输入,避免被观众看到修改过程。
5.本地记录每轮的奖品和中奖名单
6 .全屏显示。不确定现场的屏幕分辨率,故核心部分固定1024 * 768,居中显示,背景拉伸铺满全屏。
& 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]