a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

博客專欄

EEPW首頁 > 博客 > 原生JS實現簡易轉盤抽獎

原生JS實現簡易轉盤抽獎

發布人:lantu 時間:2020-06-28 來源:工程師 發布文章

<!DOCTYPE html>

<html>

<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>turntable</title>

    /*<link rel="stylesheet" href="css/index.css">*/

    <!-- css -->

    <style>

    body, table, tr, td {

        margin: 0;

        padding: 0;

    }

    .wrapper {

        position: relative;

        width: 300px;

        height: 300px;

        margin: 100px auto 0;

        text-align: center;

    }

    table {

        display: inline-block;

    }

    td, th {

        width: 100px;

        height: 100px;

        border: 1px solid #ccc;

        border-radius: 20px;

    }

    th {

        cursor: pointer;

        user-select: none;

    }

    /* 設置標識樣式 */

    tr .active {

        background-color: #ff6700;

    }

    /* 設置中獎結果 */

    .results {

        display: none;

        position: absolute;

        top: 0;

        left: 50px;

        width: 200px;

        height: 100px;

        border: 1px solid black;

        border-radius: 30px;

        text-align: center;

        line-height: 100px;

        background-color: skyblue;

    }

    </style>

</head>

<body>

    <div>

        <table>

            <tr>

                <td>今</td>

                <td>天</td>

                <td>吃</td>

            </tr>

            <tr>

                <td>什</td>

                <th id="play">開始</th>

                <td>么</td>

            </tr>

            <tr>

                <td>來</td>

                <td>抽</td>

                <td>下</td>

            </tr>

        </table>

        <div>今天吃火鍋</div>

    </div>

   <!-- <script src="js/index.js"></script> -->

   <!-- js -->

   <script>

    // 獲取開始元素

var playBtn = document.getElementById('play');

// 獲取所有td元素,獲取到偽數組

var tdAry = document.getElementsByTagName('td');

// 將偽數組的長度存儲在tdLen變量中

var tdLen = tdAry.length;

// 設置計時器變量,剛開始為空

var startTime = null;

// 自己構造數組,使橘紅色背景能夠按照自己想要的方向進行循環移動

var tdList = [0, 1, 2, 4, 7, 6, 5, 3];

// 設置橘紅色背景標識

var tdId = 0;

// 設置已經奔跑的次數,剛開始為0次

var time = 0;

// 固定跑3圈,一圈8次

var fixNum = 24

// 定義最大隨機數

var MaxNum;

// 定義隨機數,開始和結束的閾值

var randomNum;

// 獲取中獎結果元素

var results = document.getElementsByClassName('results')[0];


// 綁定點擊事件,當鼠標點擊開始按鈕后,觸發playStart函數

playBtn.onclick = playStart;


function playStart() {

    // 如果計時器不為空,那就意味著這個線程已經在跑了,就直接退出。

    if (startTime != null) {

        return;

    }

    results.style.display = 'none';

    // 奔跑的次數

    time = 0;

    // 最大隨機數,取值[0, 8],確保每個都能被選到

    MaxNum = parseInt(Math.random() * 9) + fixNum;

    // 隨機閾值,控制剛開始跑幾步加速,以及剩幾步減速,取值范圍[3, 7]

    randomNum = parseInt(Math.random() * 5 + 3);

    // 開啟計時器,每200毫秒執行一次move函數

    startTime = setInterval(move,200);

    

}


function move() {

    // 每執行一次奔跑次數time就加1

    time++;

    // 每次運行當前的背景色清空

    tdAry[tdList[tdId]].className = "";

    // 每執行一次背景色標識就加1

    tdId++;

    // 判斷如果標識大于7的話就標識tdId就等于0,否則的話就等于它本身,這個步驟如果沒有進行判斷和賦值的話,tdId就會一直自增下去,那么對應的td元素將沒有,后臺就會報錯

    tdId = tdId > 7 ? 0 : tdId;

    // 設置當前的td背景色

    tdAry[tdList[tdId]].className = "active";

    

    //如果奔跑的次數等于隨機閾值的話,那么當前的計時器清空,重新開啟一個新的計時器,并且是每20毫秒執行一次,這個步驟是控制加速的 

    if (time == randomNum) {

        clearInterval(startTime);

        startTime = setInterval(move,20);

    }


    // 如果奔跑的次數加上隨機的閾值的話,那么就將當前的加速的計時器清空,并且重新開啟一個每200毫秒的計時器,這個步驟是控制減速的

    if (time + randomNum >= MaxNum) {

        clearInterval(startTime);

        startTime = setInterval(move,200);

    }


    // 如果奔跑的次數大于等于最大的奔跑次數,那么清空當前計時器,并且計時器等于null,直接返回出去,一次抽獎結束。這個步驟是控制抽獎結束。

    if (time >= MaxNum) {

        clearInterval(startTime);

        startTime = null;

        // switch語句判斷抽獎結果,這部分比較簡單,就不贅述了。

        switch(tdList[tdId]) {

            case 0:

                results.innerText = '今天吃轉轉樂';

                results.style.display = 'block';

                break;

            case 1:

                results.innerText = '今天吃蜀九香';

                results.style.display = 'block';

                break;

            case 2:

                results.innerText = '今天吃KFC';

                results.style.display = 'block';

                break;

            case 4:

                results.innerText = '今天吃海底撈';

                results.style.display = 'block';

                break;

            case 7:

                results.innerText = '今天吃外賣';

                results.style.display = 'block';

                break;

            case 6:

                results.innerText = '今天吃土';

                results.style.display = 'block';

                break;

            case 5:

                results.innerText = '今天吃牛排';

                results.style.display = 'block';

                break;

            case 3:

                results.innerText = '今天吃草本湯';

                results.style.display = 'block';

                break;

        }

        return;

    }


}



    </script>

</body>

</html>

原文:https://www.cnblogs.com/Counterrr/p/10599291.html

*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。

逆變器相關文章:逆變器原理


西門子plc相關文章:西門子plc視頻教程


逆變器相關文章:逆變器工作原理




關鍵詞: js

技術專區

關閉