整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          JavaScript客戶端時間線

          1. eb瀏覽器創建Document對象,并且開始解析Web頁面,解析HTML元素和它們的文本內容后添加Element對象和Text節點到文檔中.在這個階段document.readystate屬性的值是”loading”.

          2. 當HTML解析器遇到沒有async和defer屬性的<script>元素時,它把這些元素添加到文檔中,然后執行行內或外部腳本.這些腳本會同步執行,并且在腳本下載(如果需要)和執行時解析器會暫停.這樣腳本就可以用document.write()來把文本插入到輸入流中.解析器恢復時這些文本會成為文檔的一部分.同步腳本經常簡單定義函數和注冊后面使用的注冊事件處理程序,但它們可以遍歷和操作文檔樹,因為在它們執行時已經存在了.這樣,同步腳本可以看到它自己的<script>元素和它們之前的文檔內容.

          3. 當解析器遇到設置了async屬性的<script>元素時,它開始下載腳本文本,并繼續解析文檔.腳本會在它下載完成后盡快執行,但是解析器沒有停下來等它下載.異步腳本禁止使用document.write()方法.它們可以看到自己的<script>元素和它之前的所有文檔元素,并且可能或干脆不可能訪問其他的文檔內容.

          4. 當文檔完成解析,document.readyState屬性變成“interactive”.

          5. 所有有defer屬性的腳本,會按它們在文檔的里的出現順序執行.異步腳本可能也會在這個時間執行.延遲腳本能訪問完整的文檔樹,禁止使用document.write()方法.

          6. 瀏覽器在Document對象上觸發DOMContentLoaded事件.這標志著程序執行從同步腳本執行階段轉換到了異步事件驅動階段.但要注意,這時可能還有異步腳本沒有執行完成.

          7. 這時,文檔已經完全解析完成,但是瀏覽器可能還在等待其他內容載入,如圖片.當所有這些內容完成載入時,并且所有異步腳本完成載入和執行,document.readyState屬性改變為“complete”,Web瀏覽器觸發Window對象上的load事件.

          8. 從此刻起,會調用異步事件,以異步響應用戶輸入事件、網絡事件、計時器過期等.

          David Flanagan. JavaScript權威指南

          JavaScript時間線

          原文:https://os-note.com/articles/client-side-javascript-timeline.html

          例簡介

          本文介紹利用JQ實現拖動選擇時間段的示例,該實例可默認顯示設置的時間段、可拖動多個時間段、可伸縮時間段、可合并時間段并能導出所有時間段的詳細信息,效果如下:

          實現過程

          1、先實現頁面效果,文件*.html和*.css代碼如下:

          Tips:css代碼聯合效果比較好理解。

          <!DOCTYPE html>
          <html>
          
          
          <head>
            <meta charset="utf-8" />
            <title>拖動選擇時間段</title>
            <link rel="stylesheet" type="text/css" href="css/style.css" />
          </head>
          
          
          <body>
            <div class="kaoqing" id="demo1"></div>
            <button id="getdata">獲得數據</button>
            <div id="answer"></div>
            <script src="js/jquery-1.9.1.min.js"></script>
            <script src="js/drag.js"></script>
            <script>
            $(function() {
              // 開始時間和結束時間的日期應該是同一天,不支持跨天,
              // 日期格式要標準,yyyy-MM-dd hh:mm:ss
              // 已選擇的時間段
              var data3 = [{
                startime: '2020-10-19 01:30:00',
                endtime: '2020-10-19 02:00:00'
              }, {
                startime: '2020-10-19 16:30:00',
                endtime: '2020-10-19 20:30:00'
              }];
              // data3 = [];
              var juicy = $("#demo1").initJuicy({
                height: 650,
                mondayDate: '2020-10-19',
                timedata: data3,
                status: true, //false表示不能編輯,true可以編輯
              });
              $("#getdata").click(function() {
                var backdata = juicy.getdata();
                $("#answer").html(JSON.stringify(backdata))
              })
            })
          </script>
          </body>
          
          
          </html>
          /*拖動時間段*/
          .bar {
            background-color: #fff;
            border: 1px solid #555;
            position: relative;
            height: 601px;
            width: 770px;
            float: right;
          }
          
          
          /*刻度*/
          .day {
            position: relative;
            height: 600px;
            box-sizing: border-box;
            width: 20px;
            float: left;
          }
          
          
          .day .hour {
            position: absolute;
            border-top: 1px solid red;
            width: 20px;
          }
          
          
          .day .halfhour {
            position: absolute;
            border-top: 1px solid #555;
            height: 7px;
            width: 20px;
            top: 12px;
          }
          
          
          .day .hour:after {
            position: absolute;
            top: 0;
            font: 11px/1 sans-serif;
          }
          
          
          .day .hour:nth-of-type(1):after {
            content: "0";
          }
          
          
          .day .hour:nth-of-type(2):after {
            content: "1";
          }
          
          
          .day .hour:nth-of-type(3):after {
            content: "2";
          }
          
          
          .day .hour:nth-of-type(4):after {
            content: "3";
          }
          
          
          .day .hour:nth-of-type(5):after {
            content: "4";
          }
          
          
          .day .hour:nth-of-type(6):after {
            content: "5";
          }
          
          
          .day .hour:nth-of-type(7):after {
            content: "6";
          }
          
          
          .day .hour:nth-of-type(8):after {
            content: "7";
          }
          
          
          .day .hour:nth-of-type(9):after {
            content: "8";
          }
          
          
          .day .hour:nth-of-type(10):after {
            content: "9";
          }
          
          
          .day .hour:nth-of-type(11):after {
            content: "10";
          }
          
          
          .day .hour:nth-of-type(12):after {
            content: "11";
          }
          
          
          .day .hour:nth-of-type(13):after {
            content: "12";
          }
          
          
          .day .hour:nth-of-type(14):after {
            content: "13";
          }
          
          
          .day .hour:nth-of-type(15):after {
            content: "14";
          }
          
          
          .day .hour:nth-of-type(16):after {
            content: "15";
          }
          
          
          .day .hour:nth-of-type(17):after {
            content: "16";
          }
          
          
          .day .hour:nth-of-type(18):after {
            content: "17";
          }
          
          
          .day .hour:nth-of-type(19):after {
            content: "18";
          }
          
          
          .day .hour:nth-of-type(20):after {
            content: "19";
          }
          
          
          .day .hour:nth-of-type(21):after {
            content: "20";
          }
          
          
          .day .hour:nth-of-type(22):after {
            content: "21";
          }
          
          
          .day .hour:nth-of-type(23):after {
            content: "22";
          }
          
          
          .day .hour:nth-of-type(24):after {
            content: "23";
          }
          
          
          .day .hour:nth-of-type(25):after {
            content: "24";
          }
          
          
          .day .hour:after {
            text-indent: -0.5em;
          }
          
          
          .weekday {
            position: relative;
            padding-right: 10px;
            height: 650px;
            width: 800px;
          }
          
          
          .bar div {
            display: inline-block;
          }
          
          
          .item {
            position: absolute;
            top: 0;
            height: 100%;
            background-color: blue;
            width: 100%;
          }
          
          
          .bdown {
            width: 100%;
            height: 10px;
            background: transparent;
            position: absolute;
            bottom: -5px;
            left: 0;
            z-index: 1;
          }
          
          
          .bup {
            width: 100%;
            height: 10px;
            background: transparent;
            position: absolute;
            top: -5px;
            left: 0;
            z-index: 1;
          }

          2、接下來實現交互邏輯,文件*.js代碼實現如下:

          Tips:函數作用已有備注,可自行調試理解。

          JavaScript 中,您可以使用 date 對象有效地處理應用程序中的日期、時間和時區。

          Date 對象可幫助您有效地操作數據、處理各種與日期相關的任務,并在創建實際應用程序時執行一些計算。

          (本文內容參考:java567.com)


          主站蜘蛛池模板: 日韩AV片无码一区二区不卡| 国产精品熟女视频一区二区| 日韩精品成人一区二区三区| 国产在线一区二区杨幂| 蜜桃传媒一区二区亚洲AV| 日本一区频道在线视频| 一本一道波多野结衣一区| 日韩免费无码视频一区二区三区| 国99精品无码一区二区三区| 精品国产日产一区二区三区| 精品乱人伦一区二区三区| 亚洲乱色熟女一区二区三区丝袜| 三上悠亚精品一区二区久久| 国产无套精品一区二区| 国产suv精品一区二区33| 蜜桃传媒视频麻豆第一区| 精品国产免费一区二区三区香蕉| 国产AV午夜精品一区二区三区| 无码人妻精品一区二区三区夜夜嗨| 久久久久久免费一区二区三区| 无码人妻品一区二区三区精99| 亚洲制服丝袜一区二区三区| 伊人久久一区二区三区无码| 无码人妻aⅴ一区二区三区| 日本免费一区尤物| 久久精品无码一区二区app| 日韩AV无码一区二区三区不卡毛片| 亚洲乱码一区二区三区在线观看| 无码精品视频一区二区三区| 国产精品一区在线麻豆| 国产精品一区二区毛卡片| 日韩精品无码Av一区二区| 国产精品一区二区三区99| 久久久综合亚洲色一区二区三区 | 99久久精品国产一区二区成人| 日日摸夜夜添一区| 日韩美女视频一区| 97精品国产福利一区二区三区| 色婷婷一区二区三区四区成人网 | 国产精品制服丝袜一区| 国产精品亚洲一区二区三区久久 |