js编写的简单抽奖系统

一个用js编写的简单的抽奖系统

效果图如图所示:字节带闪动,点击开始,可进行抽奖,并且按钮变为结束按钮,然后点击结束按钮,可以结束,并抽奖成功。

在这里插入图片描述代码如下:

<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title>抽奖</title>
		<style type="text/css">
			table {
				width: 400px;
				height: 400px;
				border: gray solid 1px;
				border-collapse: collapse;
				text-align: center;
				margin: 0 auto;
				margin-top: 100px;
			}
			
			.td {
				border: gray solid 1px;
				background-color: lightskyblue;
			}
			
			.td1 {
				border: gray solid 1px;
				background-color: red;
			}
			
			td:hover {
				background-color: cornflowerblue;
			}
			
			div {
				width: 100px;
				height: 40px;
				margin-left: auto;
				margin-right: auto;
				margin-top: 20px;
			}
			
			#btn {
				width: 100px;
				height: 40px;
			}
			#blink{
				width: 300px;
				height: 90px;
				margin-left: auto;
				margin-right: auto;
				margin-top: 20px;
				font-size: 70px;
				font: "微软雅黑";
				text-align: center;
				font-weight: bold;
			}
			
		</style>
	</head>

	<body>
		<div id="blink">
			抽  奖 了
		</div>
		<table>
		</table>
		<div>
			<input type="button" id="btn" value="开始" onclick="click1()" />
		</div>

	</body>
	<script type="text/javascript">
		/*利用二维数据+dom操作*/
		var interval = 0;
		var table = document.querySelector("table");
		var arr = [
			[1, 2, 3, 4, 5],
			[6, 7, 8, 9, 10],
			[11, 12, 13, 14, 15],
			[16, 17, 18, 19, 20],
			[21, 22, 23, 24, 25]
		]
		for(var i in arr) {
			var tr = table.insertRow();
			for(var j in arr[i]) {
				var td = tr.insertCell();
				td.setAttribute("class", "td");
				td.innerHTML = arr[i][j];
			}
		}
		//获取所有的td标签数组
		var count = document.querySelectorAll("td");

		function click1() {
			//找到当前按钮
			var btn = document.querySelector("#btn");
			//判断按钮状态
			if(btn.value == '开始') {
				//点解后修改背景颜色
				btn.style.backgroundColor = "red";
				//修改按钮文字
				btn.value = "结束";
				//停止继续调用setInterval函数进行抽奖
				clearInterval(interval);
				interval = setInterval(function() {
					var rad = Math.floor(Math.random() * 25);
					for(var i = 0; i < count.length; i++) {
						//通过遍历来重新给表设置样式
						count[i].setAttribute("class", "td");
						if(rad === i) {
							//给抽到的人改变样式
							count[i].setAttribute('class', 'td1');
						}
					}
				}, 100)

			} else {
				//设置背景颜色
				btn.style.backgroundColor = "gainsboro";
				//修改按钮文字
				btn.value = "开始";
				clearInterval(interval);
			}
		}

		function changeColor() {
			var color = "#f00|#0f0|#00f|#880|#808|#088|yellow|green|blue|gray";
			color = color.split("|");
			document.getElementById("blink").style.color = color[parseInt(Math.random() * color.length)];
		}
		setInterval("changeColor()", 200);
	</script>

</html>
纯html+JS完成的抽奖系统,友通数码港实力派团队开发。 1、号码抽取等级、数量可以自由定义前端定义,不用手工修改任何代码 3、背景、主题和样式可根据会场需要自由更换修改 2、全屏幕显示1024X768像素,界面美观大方,适合于投影仪投射晚会晚宴豪华场所抽奖系统。 3、可自由选择键盘及鼠标双重操作方式,其它无用键自动屏蔽。 4、环境要求低,只需要IE浏览器即可完成所有执行和配置工作。 5、未到场人员可以双击数字单独重新抽取。 6、开完配置一次抽一组或者抽一个。 7、自定义配置可以根据需要保存为配置文件。 8、抽奖完成后可以选择保存结果以便日后统计分析。 V1.0 增加了键鼠屏蔽参数 ----------------------------------------------- V1.1 2010-12-28 增加了 是否可以重复抽取配置选项 ----------------------------------------------- V1.2 2011-01-05 增加了 每组是否逐个抽取配置选项 2011-01-05 对逐个抽取的号码显示做了美化 ----------------------------------------------- V1.2.1 2011-01-08 修复了window.obo = 1;时出现重复数字的错误,V1.1之前版本无此错误 ~感谢石路街道的领导提醒:) 2011-01-08 增加了可选滚动姓名的功能 配置 m_name=[]; 即可 2011-01-08 增加双击数字单独重抽时的提示选项“此号码在以后的环节是否还有机会抽到!” 2011-01-08 修改了结果显示部分的错位样式 2011-01-08 修复了组抽号码重复错误问题 ----------------------------------------------- V1.2.2 2011-01-14 兼容了火狐浏览器,但本人建议仍然用IE,要用火狐只有按F11手动全屏了 2011-01-14 部分键 F5、退格、Ctrl+R、Ctrl+N、Shift+F10、Alt+F4 被屏蔽,避免一些意外发生 2011-01-14 优化了一些繁琐的结构,效率有所提升! 2011-01-16 去掉了配置参数 r、r_name,奖项配置变为window.ini,使配合样式表更加灵活 ----------------------------------------------- V1.2.2 2011-02-10 在配置文件增加了速度控制变量,以便于在不同机器环境中做速度微调 ----------------------------------------------- V1.2.3 * 2011-08-08 本版本为政府单位定制版本不对外开放 ----------------------------------------------- V2.0 2011-09-13 突破性的解决了手工修改代码烦恼增加了图形化界面 2011-09-13 可以通过图形化设置界面保存配置文件(只在IE下有效) 2011-09-13 配置文件从HTML内提取出来,变为ini.js 2011-09-13 图形化配置界面做了一些兼容性优化 2011-09-13 奖项框除了可以填写样式名还可以直接填写样式代码,程序可以自动识别 2011-09-13 增加了手动和自动整理列表功能 ----------------------------------------------- V2.0.1 2011-12-09 bug处理:列表获取处理错误,已修正! 使用请看压缩包内说明,用过了别忘了给好评,欢迎光临苏州友通数码港!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值