實現抽獎效果

js代碼

document.querySelector('.open').onclick = function(){
    let rednum = [], bluenum = [];
    for(let i=1; i <34; i++){
        rednum.push(i);
        if(i > 16) continue;
        bluenum.push(i);
    }
    let allball = document.querySelectorAll('.ball>li');// 拿到所有的球
    let ind = 0, n = 0, ri = 0;
    let sid = setInterval(function(){
        ind = rand(0, rednum.length-1);
        allball[ri].innerHTML = rednum[ind];
        n++;
        if(n==10){
            rednum.splice(ind, 1);// 處理重複問題:用過的元素需要刪除
            // 處理下一個球
            ri++;
            if(ri == allball.length-1) rednum = bluenum;
            if(ri == allball.length) clearInterval(sid);
            n = 0;// 計數器需要重置
        }
    }, 87);
}
function rand(min, max){ return min + Math.round(Math.random()*(max-min)); }

css代碼:

*{margin: 0; padding: 0;}
.ball{
    width: 360px;
    margin: 100px auto;
}
.ball>li{
    display: inline-block;
    width: 40px;
    height: 40px;
    border: 2px solid #f00;
    border-radius: 50%;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    -ms-border-radius: 50%;
    -o-border-radius: 50%;
    /* 文本屬性 */
    color: #f00;
    font-weight: bold;
    font-family: 'Courier New', Courier, monospace;
    font-size: 24px;
    text-align: center;
    line-height: 40px;
}
.ball>li.blue{
    border-color: #00f;
    color: #00f;
}
.open{
    width: 120px;
    height: 42px;
    background-color: crimson;
    color: #fff;
    font-size: 24px;
    text-align: center;
    line-height: 42px;
    font-family: 微軟雅黑;
    margin: 0 auto;
    cursor: pointer;
}

html代碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>雙色球</title>
    <link rel="stylesheet" href="./css/00.css">
</head>
<body>
    <ul class="ball">
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li class="blue">7</li>
    </ul>

    <div class="open">搖獎</div>
    <script src="./js/00.js"></script>
</body>
</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章