需要一个方便的抽奖选人的程序,弄成web端或者桌面端都可以,界面可以稍微美化一下。
总抽奖人员大概一百人,这边有名字数据可以导入,对web开发不熟,最好帮忙把代码写出来,要求如下:
1. 前面13次抽奖要选中固定的13个人,每次就从13人中随机抽取一人,不能重复,
1. 第14次抽奖就从剩余87人随机抽取;
1. 点击按钮开始抽奖时,web上需要显示名字滚动的信息,然后按结束时才显示中奖人;
做2个抽奖池呗,13个固定的作为1个奖池,剩下的87作为第2个奖池,看你一共抽多少次,
//html
<button type="button" onclick="beginDraw();">开始抽奖</button>
<div id="rollDiv" style="display:none;">当前滚动抽奖人员:<span id="rollPerson"></span></div>
<br>
<span id="drawnPerson"></span>
//js
var person_13 = ['asd','sdf','fgh','ghj','hjk','ujk','vbf','bngh','dhc','ndxc','nfg','cng','sdetg'];
var person_left = ['aaa','www','sss','qqq','fff','ggg'];
var index = 0;
var intrtval = null;
var drawTime = 3000;//3秒钟抽奖结束
var rollTime = 50;//滚动的频率50毫秒
function beginDraw(){
var person = '';
document.getElementById("rollDiv").style.display = "block";
rollPerson(person_13,person_left,drawTime);
setTimeout(function(){
if(index >= 19){
document.getElementById("drawnPerson").innerHTML = '抽奖已结束';
return;
}
if(index >= 13){
person = person_left[Math.floor((Math.random()*person_left.length))];
person_left.remove(person);
}else{
person = person_13[Math.floor((Math.random()*person_13.length))];
person_13.remove(person);
}
index ++;
document.getElementById("drawnPerson").innerHTML = '第' + index + '次抽奖中奖人是:' + person;
}, drawTime )
}
function rollPerson(arr1,arr2,drawTime){
var person_all = arr1.concat(arr2)
var total_time = 0;
intrtval = window.setInterval(function(){
console.log(person_all.length);
if(total_time >= drawTime){
document.getElementById("rollDiv").style.display = "none";
window.clearInterval(intrtval)
return;
}else{
document.getElementById("rollPerson").innerHTML = person_all[Math.floor((Math.random()*person_all.length))];
}
total_time = total_time + rollTime;
},rollTime)
}
Array.prototype.remove = function(val) {
var index = this.indexOf(val);
if (index > -1) {
this.splice(index, 1);
}
};