实现随机点名(html+css+javaScript)

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box {
            width: 500px;
            height: 400px;
            border: 1px solid green;
            margin: 100px auto;

        }

        .btns {
            width: 100%;
            height: 200px;
            display: flex;
            justify-content: space-around;

            background-color: skyblue;
        }

        button {
            margin-top: 40px;
            width: 100px;
            height: 100px;
            background-color: red;
            font-size: 30px;
            border-radius: 50%;

        }

        #nameBox {
            width: 100%;
            height: 200px;
            text-align: center;
            line-height: 200px;
            font-size: 40px;
            font-weight: bold;
            background-color: aqua;
        }


        .box1 {
            width: 400px;
            height: 600px;
            border: 1px solid red;
            position: fixed;
            bottom: 0;
            right: 0;
            background: url(img/6.gif) no-repeat;
            background-size: 100% 100%;
            /* display: none; */
            opacity: 0;
            /* transform: translate(200px,300px); */
            animation:move;
        }
     
        marquee {
            font-size: 28px;
            color: red;
            margin-top: 30px;
        }

        span {
            cursor: pointer;
        }
    </style>
    <script src="../jsTOOL/data.js"></script>
    <script src="../jsTOOL/tool.js"></script>
</head>

<body>
    <div class="box">
        <div class="btns">
            <button id="btn1">开始点名</button>
            <button id="btn2">结束点名</button>
        </div>
        <div id="nameBox">陈麒麟</div>
    </div>
    <div class="box1" id="box1">
        <span style="color:aliceblue" id="close">关闭</span>
        <marquee behavior="" direction="">大家好,我是神仙姐姐,支持我就送小花花!!!!</marquee>
    </div>
    <script>
        var btn1 = document.getElementById('btn1')
        var btn2 = document.getElementById('btn2')
        var nameBox = document.getElementById('nameBox')
        var timer = null
        var box = document.getElementById('box1')
        var close = document.getElementById('close')

        //  nameBox.innerText = '杜鑫'
        // console.log(nameList)

        // 2. 给btn1 绑定事件


        btn1.onclick = function () {
            function getColor() {
                return 'rgb(' + randomNum(0, 255) + ',' + randomNum(0, 255) + ',' + randomNum(0, 255) + ')'
            }
            // console.log(123)
            // 开启定时器  
            timer = setInterval(function () {
                // 随机索引  
                var index = randomNum(0, nameList.length - 1)
                // console.log(nameList[index])
                // 设置nameBox的内容  
                nameBox.innerText = nameList[index]
                document.getElementById('nameBox').style.color = getColor()
                document.getElementById('nameBox').style.backgroundColor = getColor()
            }, 10)
        }


        // 3.给btn2 绑定事件


        btn2.onclick = function () {
            // console.log(456)
            clearInterval(timer)
        }
        setTimeout(function () {
            box.style.opacity = 1
        }, 5000)

        close.onclick = function (e) {
            e.stopPropagation()

            box.style.opacity = 0
            setTimeout(function () {
                box.style.opacity = 1
            }, 10000)
        }
        box.onclick = function (e) {
            //   e.stopPropagation()
            window.location.href = 'http://www.4399.com'
        }     
    </script>
</body>

</html>

定义timer的目的是为了确保只有一个定时器在运行。在这段代码中,当点击btn1时,会开启一个定时器,并且每隔30毫秒执行一次定时器中的函数。如果没有定义timer,那么每次点击btn1时都会开启一个新的定时器,导致多个定时器同时执行,可能会造成程序混乱或无法控制的效果。

通过定义一个timer变量并将定时器的返回值赋值给它,可以方便地取消之前开启的定时器。当再次点击btn1时,可以先取消之前的定时器,再开启一个新的定时器,确保只有一个定时器在运行。这样可以避免多个定时器交叉执行的问题,保持程序的稳定性和可控性。

封装一个tool.js工具

/*
*
区间的随机整数
@params { Number}  a, b表示数字
@return a, b区间的一个随机整数
*
*/

function randomNum(a, b) {
    var min = Math.min(a, b)
    var max = Math.max(a, b)
    return Math.floor(Math.random() * (max - min + 1)) + min
}

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的 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` 类,使其回到原始状态。 这是一个简单的示例,可以根据需要进行修改和扩展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值