抽奖小程序、点名器案列~

本文介绍使用JavaScript实现抽奖小程序和点名器的方法,重点讲解了自动无缝滚动、跑马灯效果、按钮控制及结果输出的技术要点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在上一篇中,我们熟悉了JS 如何实现轮播图。
上文链接传送门: JS 实现轮播图~:
实际上这类抽奖、和点名器从本质上我们可以将其做成如同轮播图一样的列子。让既定的选项滚动起来,只不过我们需要在页面中加入开始和结束按钮,并个抽奖、和点名器绑定上相应事件。
如此!抽奖小程序、点名器就成了

技术要点:

● 实现自动无缝滚动
● 做好单个图片伪类,实现跑马灯效果
● 通过按钮控制滚动,实现开始与暂停
●最后弹出输出最后停止时的结果

step1:存放数据

创建一个数组,存放所需的数据。然后通过循环,动态添加元素。此法有利于页面优化,同事时减轻书写量。

var data = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24];
        for(let i = 0;i<data.length;i++){
            var li = $("<li>"+data[i]+"</li>");
            $("#ul").append(li);
        }
step2:设置开关按钮

设置按钮

HTML : <ul id="ul"></ul>
    <input type="button" value="开始" id="start">
    <input type="button" value="停止" id="stop">
step3:为开关绑定事件,来控制点名器/抽奖系统的运行/停止
  var i = 0,timeId;
        $("#start").click(function(){
           clearInterval(timeId);
            timeId = setInterval(function(){
                $("li").removeClass("current");
                $("li").eq(i).addClass("current");
                i++;
                if(i == 24) i = 0;
            },200) 
        });
        $("#stop").click(function(){
            clearInterval(timeId);
            alert("恭喜!" + $("li").eq(i-1).text()+"中奖(起来回答问题)");
        })

成品案列:
在这里插入图片描述

点击开始-效果

在这里插入图片描述

点击停止-效果

代码解析:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
         ul{
            list-style: none;
            width: 800px;
            position: absolute;
            top: 300px;
            left:300px;
          
        }
        li{
            float: left;
            width: 100px;
            height: 100px;
            text-align: center;
            line-height: 100px;
            border-radius: 50px;
            background-color: skyblue;
            color: aqua;
            font-size: 24px;
            cursor: pointer;
        }
        .current{
            background-color: mediumpurple;
            color:pink;
        }
        input{
        	margin-top: 630px;
        	margin-left: 450px;
        }
    </style>
</head>
<body>
    <ul id="ul"></ul>
    <input type="button" value="开始" id="start">
    <input type="button" value="停止" id="stop">
    <script src="jquery-1.12.4.js"></script>
    <script>
        var data = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24];
        for(let i = 0;i<data.length;i++){
            var li = $("<li>"+data[i]+"</li>");
            $("#ul").append(li);
        }
        var i = 0,timeId;
        $("#start").click(function(){
           clearInterval(timeId);
            timeId = setInterval(function(){
                $("li").removeClass("current");
                $("li").eq(i).addClass("current");
                i++;
                if(i == 24) i = 0;
            },200) 
        });
        $("#stop").click(function(){
            clearInterval(timeId);
            alert("恭喜!" + $("li").eq(i-1).text()+"中奖(起来回答问题)");
        })
    
    </script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值