每天学一个jquery插件-做个点名器

每天学一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了

猜你喜欢

转载自blog.csdn.net/weixin_44142582/article/details/113483292