js之制作簡易紅綠燈


HTML代碼:

在一個div容器內,設置3個span

<body>
<div id="i1">
    <span class="light red_light"></span>
    <span class="light yellow_light"></span>
    <span class="light green_light"></span>

</div>

CSS代碼:

<style>
        .red_light {
            width: 200px;
            height: 200px;
            border-radius: 50%;
            margin-left: 10px;
            display: inline-block;
            background-color: red;
        }

        .yellow_light {
            width: 200px;
            height: 200px;
            border-radius: 50%;
            margin-left: 10px;
            display: inline-block;
            background-color: yellow;
        }

        .green_light {
            width: 200px;
            height: 200px;
            border-radius: 50%;
            margin-left: 10px;
            display: inline-block;
            background-color: green;
        }

        .light {
            width: 200px;
            height: 200px;
            background-color: #777777;
            border-radius: 50%;
            margin-left: 10px;
            display: inline-block;
        }

        #i1 {
            width: 660px;
            height: 200px;
            margin: 0 auto;
            border: black 10px solid;
        }

    </style>

在css中,light在后面,所以后面變換顏色通過的是 classList.toggle('light')

此時的效果

scipt代碼:

 

<script>
    function l() {
        r_l()//紅燈亮
        setTimeout(y_l, 1000);//黃燈一秒后亮
        setTimeout(r_l, 1000);//黃燈亮的同時關閉紅燈
        setTimeout(g_l, 2000);//綠燈兩秒后亮
        setTimeout(y_l, 2000);//綠燈亮,黃燈熄
        setTimeout(g_l, 3000);//三秒后,紅燈熄
    }

    function r_l() {
        //獲取紅燈
        let r = document.getElementsByClassName('red_light')[0];
       //toggle函數,如果有該屬性,則去除,沒有該屬性,則添加 
       r.classList.toggle('light')
    }

    function g_l() {
        //同上
        let r = document.getElementsByClassName('green_light')[0];
        r.classList.toggle('light')
    }

    function y_l() {
        //同上
        let r = document.getElementsByClassName('yellow_light')[0];
        r.classList.toggle('light')
    }

    //紅燈10秒,黃燈2秒,綠燈10秒

     
    l(); //先執行函數
    window.onload = function () {
        t1 = setInterval(l, 3000)//每隔三秒重復執行函數
    };
//每隔三秒的時間是因為每個燈各閃一秒,如果改變了燈的持續時間,循環時間也要修改

</script>
View Code

 

 

 

效果圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM