js之製作簡易紅綠燈

来源:https://www.cnblogs.com/98WDJ/archive/2019/04/10/10685559.html
-Advertisement-
Play Games

HTML代碼: 在一個div容器內,設置3個span CSS代碼: 在css中,light在後面,所以後面變換顏色通過的是 classList.toggle('light') 此時的效果 scipt代碼: <script> function l() { r_l()//紅燈亮 setTimeout(y ...


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

 

 

 

效果圖:

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Android模擬器Genymotion的安裝和使用 by:授客 QQ:1033553122 環境: Win7 Genymotion 2.12.0 下載地址:http://download.canadiancontent.netGenymotion.html VirtualBox 5.1.34 下載 ...
  • 前言- 上幾篇文章,我們一個一個的研究了Cubism官方提供的Android使用Live2D的簡單例子,但是依舊和大家平時見到的還是有很大差距的。在研究了代碼差不多一周以後,我決定還是用文字的形式記錄一下比較好。 下麵就是我們的主角:SampleApp1 下載及運行 編譯運行後的結果- 先來粗略看看 ...
  • 文章大綱 一、多渠道打包與數據統計介紹二、友盟實現多渠道打包實戰三、友盟數據統計實戰四、項目源碼下載五、參考文章 一、多渠道打包與數據統計介紹 多渠道打包,相信很多同學都知道。在Android Studio中只要經過配置,就能打出對應市場的渠道包。打過包的同學可能都會有這樣的感受:散熱器瘋狂地轉、打 ...
  • 前端項目打包部署,以前都是手工運行打包命令,打包結束後壓縮,然後上傳到伺服器上解壓部署。這種重覆性的工作,確實有點讓人煩,而且效率也不高。 本文基於 vue 的前端項目、 GitHub 的代碼倉庫,簡述在 CentOS7 上利用 jenkins 實現自動部署。 一、安裝插件 NodeJS Jenki ...
  • 1.CSS的水平居中, 1.1 父元素是塊狀元素,子元素為行內元素的居中,直接設置text-aglin: center ,常見的文本,span 標簽,button,img等行內元素都是可以使其水平居中的 1.2 父元素為塊狀元素,子元素也為塊狀元素 1.2.1 子元素寬度已知,則可以設置子元素 ma ...
  • “塊級元素”和“display為block的元素”不是一個概念,因為<li>元素預設的display值是list-item,<table>元素預設的display值是table,它們都是塊級元素。 正是由於“塊級元素”具有換行特性,因此理論上它們都可以配合clear屬性來清除浮動帶來的影響。例如: ...
  • jQuery設置了很多為標簽進行屬性的操作,比如添加、刪除。 一 、屬性 1 attr(name | properties | [key, value | fn]) 設置或返回被選擇的屬性值。 參數: (1) name :屬性名,返回該屬性值。 (2) properties:該參數為'名 : 值' ...
  • 一、事件流 事件是js與HTML交互的基礎,事件流描述的是頁面接受事件的順序,而事件流又分為三個階段:捕獲階段、目標階段和冒泡階段。 如果單純的事件處理,事件捕獲和事件冒泡二選一即可,導致兩者並存的原因是當年微軟和網景的瀏覽器大戰,微軟提出了事件冒泡,而網景提出了事件捕獲。 1、事件冒泡 事件開始由 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...