利用原生js实现随机点名
2020-01-14 21:28
399 查看
类型一:
效果:
代码如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> * { padding: 0; margin: 0; } .wrapper { width: 800px; margin: 10px auto; border: 2px solid blue; text-align: center; } .lucking { width: 200px; height: 100px; line-height: 100px; border: 1px solid blue; } .wrapper ul li { width: 100px; height: 50px; line-height: 50px; text-align: center; margin: 4px; border: 2px solid blue; border-radius: 5px; display: inline-block; } .wrapper button { margin-top: 20px; width: 120px; height: 50px; border: none; background-color: #ddd; border-radius: 5px; font-weight: 700; outline: none; cursor: pointer; color: #fff; font-size: 18px; } .wrapper .active { background-color: orange; font-weight: bold; color: #fff; } .wrapper .start { background: green; } .wrapper .stop { background: red; } </style> </head> <body> <div class="wrapper" id="_wrapper"> <ul id="_ul"></ul> <button class="start">开始点名</button> <button class="stop">停止</button> <div class="lucking" id="_lucking"> <p></p> </div> </div> <script> var array = ['张学友', '郭富城', '郑源', '卓依婷', '李易峰', '杨紫', '黄晓明', '易烊千玺', '杨洋', '陈钰琪', '杨幂', '李一桐', '李宇春', '周笔畅', '张靓颖', '谢霆锋', '张毅', '周传雄', '黄源', '刘德华', '庾澄庆']; // 获取元素 var _wrapper = document.getElementById('_wrapper'); var ul = document.getElementById('_ul');; var timer = null; init(); function init() { // 动态创建li for (var i = 0; i < array.length; i++) { var oli = document.createElement('li'); oli.innerHTML = array[i]; ul.appendChild(oli); } // 点击 click(); } function click() { // 获取start按钮 var start = _wrapper.getElementsByTagName('button')[0]; var stop = _wrapper.getElementsByTagName('button')[1]; var lucking = document.getElementById('_lucking'); // 定时器 start.addEventListener('click', function() { clearInterval(timer); timer = setInterval(function() { // 获得随机数 var random = Math.floor(Math.random() * array.length); for (var i = 0; i < array.length; i++) { ul.children[i].className = ''; } ul.children[random].className = 'active'; }, 50); }); stop.addEventListener('click', function() { clearInterval(timer); // 找到此时的元素 var active = document.getElementsByClassName('active')[0]; lucking.children[0].innerText = "幸运儿:" + active.innerText; }) } </script> </body> </html>
类型二:
效果:
代码如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> .center{ position: absolute; left: 50%; top: 50%; transform: translate(-50%,-70%); } button{ width:80px; height: 40px; border-radius: 10px; border:none; outline: none; color: #fff; } </style> </head> <body> <center class="center"> <div id="d" style="background: #aaa;width: 250px;height: 120px;border-radius: 10px;text-align: center;line-height: 120px;"> <!-- 设置背景框颜色和长度 --> <h1 id='name'></h1> <!-- 用于显示随机的人名 --> </div> <div> <button id='start' type="button" style="margin:10px 0;background: red;">开始</button> </div> <div> <button id='temp' type="button" style="background: green;">暂停</button> </div> </center> <script type="text/javascript"> window.onload = function() { var names = ['张三', '李四', '王五', '赵六', '周杰伦', '刘德华', '张学友', '郭富城']; //人名数组 var clors = ['red', 'orange', 'blue', 'yellow', 'green', '#ccc', '#fff', 'violet']; //颜色数组 var name = document.getElementById('name'); //获取id为name的元素 var d = document.getElementById('d'); var temp = document.getElementById('temp'); var startR = -1; //记录计时器的序号 var start = document.getElementById('start'); function Random() { //产生随机数,并更改h1中的内容与颜色 var nNum = Math.floor(Math.random() * 8); //这里的8为你当前人名的数量 var cNum = Math.floor(Math.random() * 8); name.innerHTML = names[nNum]; d.style.color = clors[cNum]; } start.onclick = function() { //单击开始方法 if (startR == -1) //不加限制,多次点击开始会有多个计时器启动 startR = setInterval(Random, 100); } temp.onclick = function() { //单击暂停方法 clearInterval(startR); startR = -1; } } </script> </body> </html>
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 原生JS实现随机点名项目的实例代码
- 原生js利用鼠标滚轮实现滚动到当前页面实现动画效果
- 原生JS实现随机加载数据
- 利用原生JS与jQuery实现数字线性变化的动画
- JS实现的随机点名的模型
- js实现课堂随机点名系统
- js实现随机点名功能
- 利用Angularjs和原生JS分别实现动态效果的输入框
- 用js实现一个随机点名
- 超详细利用原生 js实现别踩白块小游戏
- 利用tween,使用原生js实现模块回弹动画效果
- 原生js利用ajax、FormData对象实现进度条上传
- 原生js实现鼠标点击出现文字特效(颜色随机)!
- 原生js实现贪吃蛇之食物随机出现部分
- 教你3分钟利用原生js实现有进度监听的文件上传预览组件
- JS实现Map,利用JS原生特性(上一篇是仿Java)
- iOS利用Cordova/PhoneGap实现js和原生之间的通讯
- js实现随机点名
- 原生js随机点名
- JS简洁代码实现随机课堂点名