随机点名(HTML/CSS/JS)

需求:

分为上下两个部分,上方为显示区域,下方为控制区域。显示区域显示基地所有成员的工号和姓名,控制区域由开始和结束两个按钮组成。点击开始按钮,显示区域里的内容开始滚动,点击结束按钮,内容滚动停止,随机显示一位成员的工号和姓名

原理:

利用setInterval定时器,点击开始按钮后,利用数学方法结合数组随机生成一个数字,将该数字作为被抽中的人在数组中的序号,点击暂停后,定时器停止,得出被抽中的数组序号,将该值插入html中显示

效果图:

随机点名

代码块:

<style>
        *{
            margin: 0;
            padding: 0;
        }
        table {
            margin-left: 10px;
            background-color: rgb(200, 250, 233);
            border-radius: 10px;
        }
        .litBox{
            text-align: center;
            margin-left: 200px;
            width: 200px;
            height: 200px;
            background-color: rgb(149, 208, 245);
            color: rgb(1, 1, 1);
            border-radius: 10px;
            font-size: 25px;
            font-weight: 800;
            font-family: 宋体;
            line-height: 200px;
        }
        .An{
            margin-left: 210px;
        }
        .left,.right{
            width: 80px;
            height: 40px;
            margin-top: 10px;
            margin-right: 10px;
            border: none;
            border-radius: 10px;
            cursor: pointer;
        }
        .left{
            background-color: rgb(216, 176, 211);
        }
        .right{
            background-color: rgb(182, 190, 222);
        }
    </style>
<body>
    <div class="box">
        <div class="bigBox">
            <table cellspacing="25">
                <tbody>
                    <tr>
                        <td>02010105廖玉洁</td>
                        <td>02010101王执聿</td>
                        <td>02010103骆文浩</td>
                        <td>02010104方海英</td>
                    </tr>
                    <tr>
                       <td>01000001吴昌平</td>
                       <td>02010108李舜禹</td>
                       <td>01000002张学涛</td>
                       <td>"01010103丁鸿飞</td> 
                    </tr>
                    <tr>
                        <td>02010107李炫宇</td>
                        <td>02010102梁克锦</td>
                        <td>02010110佟冠衡</td>
                        <td>02010106张震宇</td>
                    </tr>
                </tbody>
            </table>
        </div>
        <div class="litBox">

        </div>
        <div class="An">
            <button class="left">开始</button>
            <button class="right">暂停</button>
        </div>
    </div>
</body>
window.onload=function(){
    var arr=["02010105廖玉洁","02010101王执聿","02010103骆文浩","02010104方海英","01000001吴昌平","02010108李舜禹","01000002张学涛","01010103丁鸿飞","02010107李炫宇","02010102梁克锦","02010110佟冠衡","02010106张震宇"]
    var lbtn=document.querySelector(".left")
    var rbtn=document.querySelector(".right")
    var litBox=document.querySelector(".litBox")
    litBox.innerHTML=arr[0]
    var timer=""//获取一个计时器
    // 点击开始按钮后开启定时器
    lbtn.onclick=function(){
        timer=setInterval(() => {
            var num=Math.round(Math.random()*arr.length)
            litBox.innerHTML=arr[num]
        }, 50);
    }
    // 点击暂停按钮停止计时器
    rbtn.onclick=function(){
        clearInterval(timer)
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 HTML 示例,可以实现固定名单随机点名,并且每次点名时会播放动画效果: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>随机点名</title> <style> @keyframes rotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } .box { display: inline-block; margin: 10px; padding: 10px; border: 1px solid #ccc; border-radius: 5px; animation: rotate 2s linear infinite; } </style> </head> <body> <h1>随机点名</h1> <p>点击下面的按钮,随机从名单中选择一个人,并播放动画效果。</p> <div id="nameList"> <div class="box">小明</div> <div class="box">小红</div> <div class="box">小刚</div> <div class="box">小李</div> <div class="box">小张</div> </div> <button onclick="randomSelect()">点名</button> <script> function randomSelect() { var nameList = document.getElementById("nameList").children; var selected = Math.floor(Math.random() * nameList.length); for (var i = 0; i < nameList.length; i++) { if (i == selected) { nameList[i].classList.add("selected"); } else { nameList[i].classList.remove("selected"); } } } </script> </body> </html> ``` 在上述代码中,我们首先定义了一个旋转动画效果,通过 `@keyframes` 和 `animation` 属性来实现。然后,我们定义了一个名为 `box` 的 CSS 类,用于样式化每个名字的盒子。这里我们设置了边框、圆角、内边距和动画效果。 在 HTML 中,我们创建了一个名为 `nameList` 的 `div` 元素,并在其中添加了一些名字盒子。我们还创建了一个按钮,当用户点击该按钮时,会执行名为 `randomSelect()` 的 JavaScript 函数。 `randomSelect()` 函数会先获取名为 `nameList` 的 div 元素的所有子元素,并计算出一个随机数,表示在名字列表中选择哪一个。然后,它会遍历每个名字盒子,并将选中的盒子添加 `selected` 类,从而触发动画效果。其他名字盒子则会移除 `selected` 类,使其回到原始状态。 这是一个简单的示例,可以根据需要进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值