您的位置:首页 > Web前端 > JavaScript

基于JavaScript与css实现网页随机抽奖功能

2017-08-13 22:56 896 查看
功能介绍:第一次按回车键,名单滚动,再按一次回车键暂停,抽到的人会从名单中移除并显示在中奖名单中,继续按回车键继续抽,最多抽3次.最终按esc键重置.

在开始和停止时都有不同的BGM和背景图片.

整体思路:这次的小程序比较简单,主要是利用随机数出去事先存在集合中的名字,与之前不同的是之前是java而这次是javascript,不过大体上差不多,知识细节有所差别,其中用到的

 setInterval()函数和clearInterval()函数来实现不断地调用函数以达到滚动的目的,通过使用document.getElementById(id)来实现script与body的连接.通过innerHTML实现将
值传递到组件中,通过使用splice()函数将集合中的某一元素去除,通过使用onkeydown来接受键盘指令,最后需要用到一些css指令来使界面看起来更漂亮.

核心代码如下:

function getName() {
//产生随机数取到随机的名字
index = Math.floor(Math.random()*list1.length)
name1=list1[index];
content.innerHTML = name1;
return name1;
}

function start(){
//开始滚动抽取
status = true;
count++;
i = window.setInterval(getName,80);//每80MS调用一次函数
bgm.src="source/bgm.mp3";
bg.style.background = "url(img/bg.jpg)no-repeat";
bg.style.backgroundSize = "100%";
content.style.transform = "";
}

function stop(){
//停止滚动
status = false;//状态标记,用来标记此前状态是开始还是停止
i = window.clearInterval(i);//停止之前的setInterval
content2.innerHTML += name1+'<br>';
list1.splice(index,1);//将抽中的人从集合中去除
bgm.src="source/cheer.mp3";

content.style.transform = "rotate3d(2,2,3,360deg) scale(2,2)";
bg.style.background = "url(img/08.jpg)no-repeat";
return name1;
}

function choose(e){
var keynum;

if(window.event){
keynum = e.keyCode;
}else if(e.which){
keynum = e.which;
}
if(keynum == 13 && status == 'false'&& count<3){
//回车键 开始
start();
}else if(keynum == 13 && status =='true'){
//当状态为开始时 回车键为结束
stop();
}else if(keynum == 27){
//ESC键为重置
list1 = list;
count =0;
status =false;
content.innerHTML = "Enter键开始";
content2.innerHTML = "";
bgm.src="source/bgm.mp3";
content.style.transform = "";
bg.style.background = "url(img/bg.jpg)no-repeat";
bg.style.backgroundSize = "100%";
}else if(keynum == 13 && status == 'false'&& count == 3){

content.innerHTML = "抽奖结束";
bgm.src="source/bgm.mp3";
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: