用js写一个点名器

273 阅读1分钟

用js写一个简单的点名器
首先是样式

div id="dm">
    <input type="button" value="开始点名" id="btu">
    <input type="button" value="停止" id="bt">
    <div class="user">
        <span class="name"></span>
    </div>
</div>

其次是用css写的样式

<style>
    * {
        margin: 0px;
        padding: 0px;
    }
    body{
        position:relative;
    }
    #dm {
        text-align: center;
    }
    ul{
        position:absolute;
        top:100px;
        left:20%;
    }
    ul li {
        vertical-align: top;
        display: inline-block;
        width: 100px;
        height: 50px;
        border: 3px solid #333;
        text-align: center;
        line-height: 50px;
        margin: 5px 5px;
    }
    li.change {
        background-color: orange;
        font-size: 15px;
        color: black;
        font-weight: bolder;
        }#btu{position:absolute;
        top:200px;
        left:30%;
    }
    #bt{
        position:absolute;
        top:200px;
        left:50%;
    }
    #btu,#bt {
        width: 100px;
        height: 50px;
        font-size: 15px;
        border-radius: 10px;
        cursor: pointer;
        margin: 10px 50px 0 50px;
        color: skyblue;
    }
    .user {
        position: relative;
        width: 150px;
        height: 30px;
        border-radius: 10px;
        margin: 12px auto;
        border: 2px solid yellow;
        position:absolute;
        left:40%;
        top:300px;
    }
    .name {
        position: absolute;
        font-size: 15px;
        left: 60px;
        top: 5px;
    }
</style>

然后用js实现效果

<script>
	var dv = document.getElementById("dm");
	var btu = document.getElementById("btu");//声明开始点名
	var btu1 = document.getElementById("bt");//声明停止
	var ula = document.createElement("ul");//创建一个ul标签
	dv.appendChild(ula);
	var oLi = document.getElementsByTagName("li");
	var arr = ["张三", "李四", "王五", "小红", "小王", "小张"]
	for (var i = 0; i < arr.length; i++) {//遍历数组,创建li标签,把数组的值放入li中
		var liObj = document.createElement("li");
		liObj.innerText = arr[i];
		ula.appendChild(liObj);
	}
	var timer = null;
	btu.onclick = function() {
		clearInterval(timer);
		timer = setInterval(function() {
			var i = Math.floor(Math.random() * arr.length);
			for (var j = 0; j < oLi.length; j++) {
				oLi[j].removeAttribute("class");
			}
			oLi[i].className = "change";
		}, 50);
	};
	btu1.onclick = function() {
		clearInterval(timer);
		var choise = document.getElementsByClassName("change")[0];
		var name = choise.innerText;
		var nameSpan = document.getElementsByClassName('name')[0];
		nameSpan.innerText = name;
	}
</script>

效果图

2022-01-09_160707.png 点击后的效果图

2022-01-09_160725.png