HTML+JavaScript实现一个简单抽奖功能


 

为什么会做这个东西呢,纯属好玩,闲的
其实是在上次班会的时候想到的,班会的时候叫人回答问题,没人回答
当时就想,我如果抽签抽到你了,你还是不回答吗??好吧,一切都是扯淡
先来看看页面效果吧:
在这里插入图片描述
点击抽取就可以抽签了,红色框会显示内容,(PS:红色框是没有的,仅仅做描述)
抽取到的效果图如下,字体会随机滚动,最后停止:
在这里插入图片描述
里面的抽取内容完全可以替换,,,,
下面贴上代码:

<!DOCTYPE html>
<html lang="zh">
<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>
        *{margin: 0px;padding: 0px;}
        li{list-style: none;}
        body{
            font-family: "楷体";
            user-select:none;
            background: url('1.jpg') no-repeat;
            background-size: 100%;
            /*background-color: red;*/
        }
        .section{
            position: relative;
            width:935px;
            height: 460px;
            background-color: rgba(0,0,0,.3);
            margin:165px auto 0;
            text-align: center;
        }
        .section h2{
            height: 90px;
            line-height: 90px;
            font-size: 40px;
            color:#fff;
        }
        .section .s-result{
            height: 400px;
            color: #fff;
        }
        .s-result .number{
            float: left;
            width: 895px;
            height: 300px;
            line-height: 300px;
            margin-left: 20px;
            font-size: 60px;
            font-weight: bold;
        }
        .btn{
            position:absolute;
            left: 50%;
            margin-left: -161px;
            bottom: -40px;
            width: 323px;
            height: 81px;
            border-radius: 30px;
            background-color: #000;
            cursor:pointer;
        }
        .btn p{
            line-height: 81px;
            font-size: 50px;
            color: #fff;
        }
    </style>
</head>
<body>
    <div class="section">
        <h2>看看谁最幸运!!</h2>
        <div class="s-result">
        </div>
        <div class="btn">
            <p>点 击 抽 取</p>
        </div>
    </div>
    <script>
        var oBtn = document.getElementsByClassName('btn')[0];
        var oResult = document.getElementsByClassName('s-result')[0];
        var arrName = ['张三','李四','王五','赵六','李xx','杨xx','张xx','A_dmin'];         //抽签的内容
        var step = 1;
        var cnt = 1;
        var flag = true;
        oBtn.onclick = function (){
            if(flag){
                step = 1;
                creatName();
                flag = false;
            }else{
                var d =  document.getElementsByClassName('number')[0];
                oResult.removeChild(d);
                step = 1;
                creatName();
            }
        }
        function getName(){
            var num = Math.floor(Math.random()*(arrName.length-1));
            var n = arrName[num];
            arrName.splice(num,1);
            return n;
        }
        function creatName(){
            if(step > cnt){
                return null;
            }
            step++;
            
            var oDiv = document.createElement('div');
            oDiv.className = 'number';
            
            oResult.appendChild(oDiv);
            
            var dis = 1;
            var maxDis = 30;
            var mySet = setInterval(function(){
                dis++;
                if(dis > maxDis){
                    oDiv.innerHTML = getName();
                    clearInterval(mySet);
                    creatName();
                    return null;
                }
                oDiv.innerHTML = arrName[Math.floor(Math.random()*(arrName.length-1))];
            },50);
        }
    </script>
</body>
</html>

 

 

PS:
有点小瑕疵,可点击多次,每次随机的结果都是不一样的,所以当内容抽取完之后,页面会显示undefined,不过影响不大,啊哈哈哈哈


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM