如下图,这是我基于网上的随机点名系统修改的,可以实现自定义输入名称,菜名等随机抽取:
以下是相关实现源码,背景图片需要的可以私聊我,如有不足之处欢迎指正-
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>随机抽奖系统</title>
<link rel="shortcut icon" href="./favicon.ico" />
<style>
/* 初始化页面,清除所有元素的内外边距 */
body{
padding: 0;
margin: 0;
/* 设置背景颜色为414141 */
background-image: url(./background.jpg);
}
/* 盒子居中 */
div{
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
text-align: center;
//background-color:#414141;
}
/* 使用上期视频的文字渐变效果,再加一点点文字阴影 */
span,h2{
text-shadow: 0 0 10px #dfd8d8;
background: linear-gradient(135deg,#14ffe9,#ffeb3b,#ff00e0);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
animation: ff 0.9s linear infinite;
}
@keyframes ff{
to{filter: hue-rotate(360deg);}
}
/* 设置一下字体大小 */
h2{
font-size: 55px;
}
span{
font-size: 187.5px;
}
/* 按钮居中 */
button{
position: absolute;
top: 15%;
left: 50%;
transform: translate(-50%,-50%);
width: 150px;
height: 40px;
box-shadow: 0 0 10px #fff;
/* 取消轮廓线 */
outline: none;
background-color: gray;
}
/* 姓名输入框 */
#name_list{
position: absolute;
top: 5%;
left: 50%;
transform: translate(-50%,-50%);
width: 50%;
}
</style>
</head>
<body>
<textarea id="name_list" rows="4" value="" placeholder="请输入姓名,以中文逗号分隔" style="font-size:18px;background-color: #E5E5E5;"></textarea>
<button id="button_text">开始</button>
<div>
<span id="name"></span>
<h2>随机抽奖</h2>
</div>
<script>
// 获取标签
let nametxt=document.getElementById('name');
let button=document.getElementById('button_text');
// 创建一个数组存储名字
let uname=['无'];
// 创建一个函数生成0~max的随机数字
function getrandom(max){
return parseInt(Math.random()*(max+1),10);
}
function clock(){
// 通过获取一个随机的数组下标实现随机获取一个名字,并将这个名字赋值给变量random
let random=uname[getrandom(uname.length-1)];
//将random塞到span里
nametxt.innerHTML=random;
};
// 打印名字已经实现了,下一步让没点击按钮前名字一直刷新
// 设置不停止时名字的刷新速度为30毫秒
let time;
// 将开始与停止按钮绑定到按钮上,并通过按钮控制
let flag=true;
button.onclick=function(){
let nameList=document.getElementById('name_list').value;
if(nameList!=""){
uname = nameList.split(",");
document.getElementById('name_list').style.display="none";
}else{
alert("请先输入姓名!");
}
// 当flag标志为false时,点击按钮让刷新停止;
if(flag==false)
{
time=window.clearInterval(time);
// 按钮文字从stop变为start;
button.innerHTML='开始';
// 标志变更
flag=true;
}else{
// 当flag标志为true时,开始刷新,文字变更
time=self.setInterval("clock()",30);
button.innerHTML='停止';
flag=false;
}
}
</script>
</body>
</html>