每天學一個jquery外掛-做個點名器
阿新 • • 發佈:2021-02-01
技術標籤:每天學一個jquery外掛javascriptjquery
每天學一jquery外掛-做個點名器
做個點名器
剛學程式設計的時候完全是摸瞎,啥需求的完不成,記憶猶新的就是之前給做過winform版本的點名器,其實現在想想原理賊雞兒簡單,然後我搞了一下web版的。
實現效果
程式碼部分
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>做個點名器</title>
<script src=" js/jquery-3.4.1.min.js"></script>
<style>
*{
margin: 0;
padding: 0;
}
#div{
border: 1px solid lightgray;
width: 200px;
height: 50px;
margin: 10px auto;
overflow: hidden;
cursor: pointer;
}
.item{
width: 100%;
height: 100%;
color: gray;
font-size: 24px;
font-weight: bold;
display: flex;
justify-content: center;
align-items: center;
}
</style>
</head>
<body>
<div id="div"></div>
<input type="file" id="file" />
</body>
</html>
< script>
$(function(){
var arr = [];
$("#file").change(function(){
var f = $(this)[0].files[0];
if(f){//假如有檔案就讀
var reader = new FileReader();
reader.readAsText(f);
reader.onload=function(e){
var str = e.target.result;
arr = str.split("-");
draw();
}
}else{
arr = [];
draw();
}
})
var flag = true;
var t = null;
$("#div").click(function(){
if(arr.length>0){
//開始
if(flag){
flag = false;
t =setInterval(function(){
var count = Math.floor(Math.random()*arr.length);
var temp = count*$("#div").height();
$(".item").first().css("margin-top","-"+temp+"px")
},40)
}else{
clearInterval(t);
flag = true;
}
}else{
alert("請選擇正確的檔案")
}
})
var draw = function(){
$("#div").html("");
arr.forEach(item=>{
var $item = $("<div class='item'>"+item+"</div>");
$item.appendTo($("#div"));
})
}
})
</script>
實現思路
- 需求就是名單是使用者自己準備的,然後你要給個隨機點名的效果就行了,所以我們實現讀取檔案,然後處理成對應的格式就行了
- 接著渲染成dom
- 然後就是計時器不斷跳動弄得隨機的樣子,然後就是關閉或者啟動計時器就ok了