最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript實(shí)現(xiàn)班級(jí)抽簽小程序

 更新時(shí)間:2021年05月19日 16:25:26   作者:是榆榆啊  
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)班級(jí)抽簽小程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了JavaScript實(shí)現(xiàn)班級(jí)抽簽小程序的具體代碼,供大家參考,具體內(nèi)容如下

項(xiàng)目展示

項(xiàng)目中假設(shè)一個(gè)班只有三十個(gè)人

html結(jié)構(gòu)

<div class="outerContainer">
    <div class="question">請(qǐng)問(wèn)你要抽幾個(gè)xx班的小寶貝呢?</div>

    <div class="number">
        <input type="text" style="color: #999;" value="請(qǐng)輸入需要的人數(shù)" onblur="if (this.value == '') {this.value = '請(qǐng)輸入需要的人數(shù)';this.style.color = '#999';}" onfocus="if (this.value == '請(qǐng)輸入需要的人數(shù)') {this.value = '';this.style.color = '#424242';}">
    </div>

    <div class="btnWrapper">
        <button>開始抽簽</button>
    </div>

    <div class="viewDiv"></div>

    <div class="foot">制作者:chenyu-max</div>
</div>

CSS層疊樣式

.outerContainer {
    margin-top: 100px;
}

.question {
    margin-top: 30px;
    width: 100%;
    height: 50px;
    line-height: 50px;
    font-size: 25px;
    transition: all .3s linear; 
    /* 顏色變化的時(shí)候,會(huì)有個(gè)漸變的效果 */
    text-align: center;
}

.number {
    margin-top: 30px;
    display: block;
    left: 200px;
    text-align: center;
}

.number input {
    height: 30px;
    font-size: 20px;
    line-height: 30px;
}

.btnWrapper {
    margin-top: 30px;
    width: 100%;
    height: 30px;
    text-align: center;
}

.btnWrapper button {
    outline: none;
    color: rgb(233, 8, 8);
    cursor: pointer;
    border-radius: 15px;
    width: 100px;
    height: 25px;
    line-height: 19px;
}

.viewDiv {
    margin: 20px auto;
    width: 900px;
    height: 300px;
    text-align: center;
    font-size: 30px;
    line-height: 50px;
    border: 1px solid black;
}

.foot {
    margin: 0 auto;
    text-align: center;
}

JS邏輯

獲取dom元素

var input = document.getElementsByTagName('input')[0];
var viewDiv = document.getElementsByClassName('viewDiv')[0];
var btn = document.getElementsByTagName('button')[0];
var question = document.getElementsByClassName('question')[0];

其余變量

var arr = [];   // 存放抽取處的學(xué)號(hào)
var count = 0;   // 計(jì)數(shù)器,用以 question 的顏色修改

question的顏色變化

setInterval(function() {
    var temp = count % 6;
    switch (temp) {
        case 0:
            question.style.color = 'red';
            break;
        case 1:
            question.style.color = 'green';
            break;
        case 2:
            question.style.color = 'blue';
            break;
        case 3:
            question.style.color = 'grey';
            break;
        case 4:
            question.style.color = 'purple';
            break;
        case 5:
            question.style.color = 'black';
            break;
        default:
            break;
    }
    count++;
}, 700);

抽獎(jiǎng)邏輯

btn.onclick = function() {
    // 檢查輸入的內(nèi)容是否是是1~30人
    // 若是班級(jí)人數(shù)不止三十人,改成 input.value < 班級(jí)人數(shù) + 1
    var check = (function() {
        if (input.value > 0 && input.value < 31) {
            return true;
        } else {
            return false;
        }
    }());

    // 如果輸入的是正確的,那么進(jìn)行抽簽
    if (check) {
        var num = input.value;
        arr = [];
        for (var i = 0; arr.length < num; i++) {
            // 生成1 ~ 30 的隨機(jī)數(shù)
            // 需要更改人數(shù),直接修改 乘號(hào)后面的 30 未你們班需要的人數(shù)即可
            var temp = Math.floor(Math.random() * 30 + 1); // 1 ~ 30
            var flag = true;
            arr.forEach(function(value) {
                // 遍歷數(shù)組,防止生成的隨機(jī)數(shù)和已有的數(shù)字重復(fù)
                if (value == temp) {
                    flag = false;
                }
            })
            if (flag) {
                arr.push(temp);
            }
        }

        // 將抽出的人數(shù)的學(xué)號(hào)進(jìn)行升序排序
        arr.sort(function(a, b) {
            return a - b;
        })


        var str = arr.join(", ");
        viewDiv.innerHTML = " <span style='color : red'>恭喜以下小可愛(ài)/帥哥 被抽中!</span> </br> " + str;
    } else {
        // 若不是,則輸出錯(cuò)誤提示
        // 人數(shù)可以修改
        viewDiv.innerHTML = "<span style='color : red'>請(qǐng)輸入正確的人數(shù)(1 ~ 30)哦</span>";
    }
}

增加功能

document.onkeydown = function(e) {
    // 摁下回車鍵 觸發(fā) btn 的onclick事件
    if (e.keyCode == 13) {
        btn.onclick();
    }
}

全部代碼

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>給xx班小寶貝來(lái)個(gè)抽簽</title>
    <link rel="icon" href="">
    <style>
        .outerContainer {
            margin-top: 100px;
        }
        
        .question {
            margin-top: 30px;
            width: 100%;
            height: 50px;
            line-height: 50px;
            font-size: 25px;
            transition: all .3s linear;
            text-align: center;
        }
        
        .number {
            margin-top: 30px;
            display: block;
            left: 200px;
            text-align: center;
        }
        
        .number input {
            height: 30px;
            font-size: 20px;
            line-height: 30px;
        }
        
        .btnWrapper {
            margin-top: 30px;
            width: 100%;
            height: 30px;
            text-align: center;
        }
        
        .btnWrapper button {
            outline: none;
            color: rgb(233, 8, 8);
            cursor: pointer;
            border-radius: 15px;
            width: 100px;
            height: 25px;
            line-height: 19px;
        }
        
        .viewDiv {
            margin: 20px auto;
            width: 900px;
            height: 300px;
            text-align: center;
            font-size: 30px;
            line-height: 50px;
            border: 1px solid black;
        }
        
        .foot {
            margin: 0 auto;
            text-align: center;
        }
    </style>
</head>

<body>

    <div class="outerContainer">
        <div class="question">請(qǐng)問(wèn)你要抽幾個(gè)xx班的小寶貝呢?</div>

        <div class="number">
            <input type="text" style="color: #999;" value="請(qǐng)輸入需要的人數(shù)" onblur="if (this.value == '') {this.value = '請(qǐng)輸入需要的人數(shù)';this.style.color = '#999';}" onfocus="if (this.value == '請(qǐng)輸入需要的人數(shù)') {this.value = '';this.style.color = '#424242';}">
        </div>

        <div class="btnWrapper">
            <button>開始抽簽</button>
        </div>

        <div class="viewDiv"></div>

        <div class="foot">制作者:chenyu-max</div>
    </div>

    <script>
        var input = document.getElementsByTagName('input')[0];
        var viewDiv = document.getElementsByClassName('viewDiv')[0];
        var btn = document.getElementsByTagName('button')[0];
        var question = document.getElementsByClassName('question')[0];

        var arr = []; // 存放抽取處的學(xué)號(hào)
        var count = 0; // 計(jì)數(shù)器,用以question 的顏色修改器
        setInterval(function() {
            var temp = count % 6;
            switch (temp) {
                case 0:
                    question.style.color = 'red';
                    break;
                case 1:
                    question.style.color = 'green';
                    break;
                case 2:
                    question.style.color = 'blue';
                    break;
                case 3:
                    question.style.color = 'grey';
                    break;
                case 4:
                    question.style.color = 'purple';
                    break;
                case 5:
                    question.style.color = 'black';
                    break;
                default:
                    break;
            }
            count++;
        }, 700);


        document.onkeydown = function(e) {
            // 摁下回車鍵 觸發(fā) btn 的onclick事件
            if (e.keyCode == 13) {
                btn.onclick();
            }
        }

        btn.onclick = function() {
            // 檢查輸入的內(nèi)容是否是是1~30人
            // 若是班級(jí)人數(shù)不止三十人,改成 input.value < 班級(jí)人數(shù) + 1
            var check = (function() {
                if (input.value > 0 && input.value < 31) {
                    return true;
                } else {
                    return false;
                }
            }());

            // 如果輸入的是正確的,那么進(jìn)行抽簽
            if (check) {
                var num = input.value;
                arr = [];
                for (var i = 0; arr.length < num; i++) {
                    // 生成1 ~ 30 的隨機(jī)數(shù)
                    // 需要更改人數(shù),直接修改 乘號(hào)后面的 30 未你們班需要的人數(shù)即可
                    var temp = Math.floor(Math.random() * 30 + 1); // 1 ~ 30
                    var flag = true;
                    arr.forEach(function(value) {
                        // 遍歷數(shù)組,防止生成的隨機(jī)數(shù)和已有的數(shù)字重復(fù)
                        if (value == temp) {
                            flag = false;
                        }
                    })
                    if (flag) {
                        arr.push(temp);
                    }
                }

                // 將抽出的人數(shù)的學(xué)號(hào)進(jìn)行升序排序
                arr.sort(function(a, b) {
                    return a - b;
                })


                var str = arr.join(", ");
                viewDiv.innerHTML = " <span style='color : red'>恭喜以下小可愛(ài)/帥哥 被抽中!</span> </br> " + str;
            } else {
                // 若不是,則輸出錯(cuò)誤提示
                // 人數(shù)可以修改
                viewDiv.innerHTML = "<span style='color : red'>請(qǐng)輸入正確的人數(shù)(1 ~ 30)哦</span>";
            }
        }
    </script>
</body>

</html>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 效果直逼flash的Div+Css+Js菜單

    效果直逼flash的Div+Css+Js菜單

    效果直逼flash的Div+Css+Js菜單...
    2007-05-05
  • JavaScript計(jì)時(shí)器示例分析

    JavaScript計(jì)時(shí)器示例分析

    這篇文章主要介紹了JavaScript計(jì)時(shí)器示例分析,需要的朋友可以參考下
    2015-02-02
  • JS實(shí)現(xiàn)前端頁(yè)面的搜索功能

    JS實(shí)現(xiàn)前端頁(yè)面的搜索功能

    這篇文章主要介紹了JS實(shí)現(xiàn)前端頁(yè)面的搜索功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-06-06
  • 淺談gulp創(chuàng)建完整的項(xiàng)目流程

    淺談gulp創(chuàng)建完整的項(xiàng)目流程

    本篇文章主要介紹了淺談gulp創(chuàng)建完整的項(xiàng)目流程,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • JavaScript實(shí)現(xiàn)字符雨效果

    JavaScript實(shí)現(xiàn)字符雨效果

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)字符雨效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • JS新包管理工具yarn和npm的對(duì)比與使用入門

    JS新包管理工具yarn和npm的對(duì)比與使用入門

    在2016年10月11日f(shuō)acebook 公開了新的javascript包管理工具 yarn, 用來(lái)替代目前被廣泛使用的npm(nodejs 自帶的包管理工具),本文將介紹yarn工具帶來(lái)的優(yōu)點(diǎn)和使用入門,以及對(duì)比npm解決了什么問(wèn)題,帶來(lái)哪些便利。有需要的朋友們下面來(lái)一起看看吧。
    2016-12-12
  • JavaScript實(shí)現(xiàn)簡(jiǎn)單輪播圖效果

    JavaScript實(shí)現(xiàn)簡(jiǎn)單輪播圖效果

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)圖片輪播,左右翻轉(zhuǎn),圖片切換顯示等效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • JS實(shí)現(xiàn)狀態(tài)欄跑馬燈文字效果代碼

    JS實(shí)現(xiàn)狀態(tài)欄跑馬燈文字效果代碼

    這篇文章主要介紹了JS實(shí)現(xiàn)狀態(tài)欄跑馬燈文字效果代碼,涉及JavaScript定時(shí)函數(shù)及流程控制的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-10-10
  • 通過(guò)原生JS實(shí)現(xiàn)為元素添加事件的方法

    通過(guò)原生JS實(shí)現(xiàn)為元素添加事件的方法

    下面小編就為大家?guī)?lái)一篇通過(guò)原生JS實(shí)現(xiàn)為元素添加事件的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-11-11
  • JavaScript進(jìn)制轉(zhuǎn)換實(shí)現(xiàn)方法解析

    JavaScript進(jìn)制轉(zhuǎn)換實(shí)現(xiàn)方法解析

    這篇文章主要介紹了JavaScript進(jìn)制轉(zhuǎn)換實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了JavaScript進(jìn)制轉(zhuǎn)換中十進(jìn)制與其他進(jìn)制轉(zhuǎn)換、以及隨機(jī)顏色生成相關(guān)操作技巧,需要的朋友可以參考下
    2020-01-01

最新評(píng)論

丁青县| 和田县| 沙雅县| 错那县| 太保市| SHOW| 新疆| 长岭县| 岳阳市| 临澧县| 吴旗县| 霍州市| 望都县| 佛教| 阿图什市| 九江县| 友谊县| 和顺县| 油尖旺区| 手机| 台前县| 卓资县| 拉孜县| 湖州市| 江华| 江西省| 定日县| 淳安县| 民和| 庆城县| 天全县| 合水县| 铁力市| 阿拉善盟| 宁陵县| 镶黄旗| 修文县| 忻州市| 思南县| 商南县| 昌吉市|