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

功能介绍:第一次按回车键,名单滚动,再按一次回车键暂停,抽到的人会从名单中移除并显示在中奖名单中,继续按回车键继续抽,最多抽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";
			}
		}
		

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭