基于JavaScript實(shí)現(xiàn)簡單抽獎功能代碼實(shí)例
為什么會做這個東西呢,純屬好玩,閑的
其實(shí)是在上次班會的時候想到的,班會的時候叫人回答問題,沒人回答
當(dāng)時就想,我如果抽簽抽到你了,你還是不回答嗎??好吧,一切都是扯淡
先來看看頁面效果吧:

點(diǎn)擊抽取就可以抽簽了,紅色框會顯示內(nèi)容,(PS:紅色框是沒有的,僅僅做描述)
抽取到的效果圖如下,字體會隨機(jī)滾動,最后停止:

里面的抽取內(nèi)容完全可以替換,,,,
下面貼上代碼:
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
*{margin: 0px;padding: 0px;}
li{list-style: none;}
body{
font-family: "楷體";
user-select:none;
background: url('1.jpg') no-repeat;
background-size: 100%;
/*background-color: red;*/
}
.section{
position: relative;
width:935px;
height: 460px;
background-color: rgba(0,0,0,.3);
margin:165px auto 0;
text-align: center;
}
.section h2{
height: 90px;
line-height: 90px;
font-size: 40px;
color:#fff;
}
.section .s-result{
height: 400px;
color: #fff;
}
.s-result .number{
float: left;
width: 895px;
height: 300px;
line-height: 300px;
margin-left: 20px;
font-size: 60px;
font-weight: bold;
}
.btn{
position:absolute;
left: 50%;
margin-left: -161px;
bottom: -40px;
width: 323px;
height: 81px;
border-radius: 30px;
background-color: #000;
cursor:pointer;
}
.btn p{
line-height: 81px;
font-size: 50px;
color: #fff;
}
</style>
</head>
<body>
<div class="section">
<h2>看看誰最幸運(yùn)?。?lt;/h2>
<div class="s-result">
</div>
<div class="btn">
<p>點(diǎn) 擊 抽 取</p>
</div>
</div>
<script>
var oBtn = document.getElementsByClassName('btn')[0];
var oResult = document.getElementsByClassName('s-result')[0];
var arrName = ['張三','李四','王五','趙六','李xx','楊xx','張xx','A_dmin']; //抽簽的內(nèi)容
var step = 1;
var cnt = 1;
var flag = true;
oBtn.onclick = function (){
if(flag){
step = 1;
creatName();
flag = false;
}else{
var d = document.getElementsByClassName('number')[0];
oResult.removeChild(d);
step = 1;
creatName();
}
}
function getName(){
var num = Math.floor(Math.random()*(arrName.length-1));
var n = arrName[num];
arrName.splice(num,1);
return n;
}
function creatName(){
if(step > cnt){
return null;
}
step++;
var oDiv = document.createElement('div');
oDiv.className = 'number';
oResult.appendChild(oDiv);
var dis = 1;
var maxDis = 30;
var mySet = setInterval(function(){
dis++;
if(dis > maxDis){
oDiv.innerHTML = getName();
clearInterval(mySet);
creatName();
return null;
}
oDiv.innerHTML = arrName[Math.floor(Math.random()*(arrName.length-1))];
},50);
}
</script>
</body>
</html>
PS:
有點(diǎn)小瑕疵,可點(diǎn)擊多次,每次隨機(jī)的結(jié)果都是不一樣的,所以當(dāng)內(nèi)容抽取完之后,頁面會顯示undefined,不過影響不大,啊哈哈哈哈
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript實(shí)現(xiàn)時間表動態(tài)效果
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)時間表動態(tài)效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07
layui數(shù)據(jù)表格實(shí)現(xiàn)重載數(shù)據(jù)表格功能(搜索功能)
這篇文章主要介紹了layui數(shù)據(jù)表格實(shí)現(xiàn)重載數(shù)據(jù)表格功能,以搜索功能為例進(jìn)行講解,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-07-07
JavaScript利用el-table實(shí)現(xiàn)繪制熱度表
這篇文章主要為大家詳細(xì)介紹了JavaScript如何利用el-table實(shí)現(xiàn)繪制熱度表,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-03-03
javascript完美實(shí)現(xiàn)給定日期返回上月日期的方法
這篇文章主要介紹了javascript完美實(shí)現(xiàn)給定日期返回上月日期的方法,結(jié)合實(shí)例形式分析了javascript日期時間的計(jì)算技巧,并給出了格式化日期時間的操作方法,需要的朋友可以參考下2017-06-06
js實(shí)現(xiàn)刷新頁面后回到記錄時滾動條的位置【兩種方案可選】
本文主要介紹了頁面的div中有滾動條,js實(shí)現(xiàn)刷新頁面后回到記錄時滾動條的位置的兩種方案,需要的朋友可以看下2016-12-12
回車直接實(shí)現(xiàn)點(diǎn)擊某按鈕的效果即觸發(fā)單擊事件
這篇文章主要介紹了回車直接實(shí)現(xiàn)點(diǎn)擊某按鈕的效果即觸發(fā)單擊事件,需要的朋友可以參考下2014-02-02
Ajax實(shí)現(xiàn)省市區(qū)三級聯(lián)動實(shí)例代碼
這篇文章介紹了Ajax實(shí)現(xiàn)省市區(qū)三級聯(lián)動的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04

