JS實現簡單的九宮格抽獎

本文實例為大傢分享瞭JS實現簡單九宮格抽獎的具體代碼,供大傢參考,具體內容如下

結構

<body>

    <div id="fa">
        <div class="option">1</div>
        <div class="option">5</div>
        <div class="option">3</div>
        <div class="option">4</div>
        <div id="start">開始抽獎</div>
        <div class="option">5</div>
        <div class="option">6</div>
        <div class="option">7</div>
        <div class="option">8</div>
    </div>
</body>

樣式

<style>
        #fa {
            width: 600px;
            height: 600px;
            border: 1px solid red;

        }

        #fa>div {
            width: 33%;
            height: 33%;
            border: 1px solid red;
            float: left;
            line-height: 200px;
            text-align: center;//文本居中
            font-size: 40px;
            font-weight: 800;//加粗字體

        }

        #start {
            cursor: pointer;//使鼠標移入時出現小手圖標
            background-color: pink;
        }
</style>

JS實現抽獎

邏輯分析:

1.點擊中間的開始抽獎時觸發一個定時器
2.觸發定時器後,隨機生成一個數字,通過這個數字來獲取當前所在元素
3.設置一個時間來結束定時器,結束抽獎

<script>
         let btn = document.getElementById('start');//獲取到開始抽獎按鈕
        let options = document.getElementsByClassName('option');//獲取到8個獎區
        let timer =null;//防止定時器多次觸發,初始值設為null

        //為btn綁定一個單擊事件
        btn.onclick = function () {
            //設置一個初始值 作為時間判斷
            let num = 0;
            
            if (timer == null) {
                //觸發一個定時器
               timer = setInterval(function () {

                    num++;

                     //隨機產生一個0 - 7 的數字 通過該數字作為數組的下標來獲取到div
                    let ran = Math.round(Math.random() * (7 - 0) + 0);
                    //round是因為Math.random() * (7 - 0) + 0)取出的隨機數是含小數的一串數字,所以需要取整
                    
                    //改變選中的元素背景顏色之前,將所有元素的背景顏色恢復
                    for (let i = 0; i < options.length; i++) {
                        options[i].style.backgroundColor = '';
                    }

                    //給選中的元素設置一個背景顏色
                    options[ran].style.backgroundColor = 'tomato';

                    //給定時器一個時間,到時間停止定時器
                    if(num == 5){
                        clearInterval(timer)
                    }

                }, 1000)
            }

        }
</script>

效果

以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。

推薦閱讀: