1. 程式人生 > >常用前端效果之頁面載入

常用前端效果之頁面載入

  咱們在做前臺頁面開發的時候經常會遇到一種場景,那就是頁面需要載入大資料量的資源。比如做一個相簿,視訊網站等等。如果這時候在進入頁面的時候不做處理,那給使用者展現的就是漫長而無聊的等待,使用者體驗性相當不好。因此在這介紹常見的頁面載入效果如何製作.
製作思路如下:1.在要顯示的頁面上層新增“畫布”,當用戶進入頁面的時候只能看到這層畫布,它用於展示載入中的動畫。 2.頁面自動檢測資源是否已經全部載入完成,當載入完成時隱藏“畫布”,展示頁面.
  誤區: 往往有人在做這個效果的時候會使用定時器,即自己估算一個保守的時間,然後用定時器來記時,當記時完成隱藏”畫布”。這種方式往往也能達到效果,但缺點是就算頁面提前載入完成使用者也必須要等待這麼長時間。
正確做法:


  利用document.onreadystatechange+document.readystate來完成。
程式碼如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /* 畫布 */
        .loadding{
            position: fixed;/* 隨滾動條移動 */
            width
: 100%
;/* 寬高整個螢幕 */ height: 100%; z-index: 100; /* 位於上層 */ background: #ffffff;/* 背景色覆蓋要顯示頁面 */ left: 0px;/* 位置固定整個螢幕 */ top: 0px; }
.loadding .pic{ /* 圖片大小 */ width: 250px; height: 130px; position
: absolute
;/* 相對於父節點絕對定位 */ /* 位於螢幕中間 */ left: 0; right: 0; top:0; bottom: 0; margin: auto; /* 背景為動畫 */ background-image: url("../images/loading.gif"); }
</style> <script src="../js/jquery-1.11.3.js"></script> <script> $(function(){ //載入上層畫布 var loading = "<div class='loadding'><div class='pic'></div></div>"; $("body").append(loading); //載入狀態改變時呼叫 document.onreadystatechange=function(){ //當頁面載入完成時隱藏載入動畫 if(document.readyState=="complete"){ $(".loadding").fadeOut(); } } }) </script> </head> <body> <img src="http://img15.3lian.com/2015/f2/50/d/73.jpg" alt=""> </body> </html>

程式碼中對應的資源可去網上查詢。需要說明兩個東西:
1.window.onload body.onload 和 document.onreadystatechange的區別
  window.onload: 頁面全部載入完成,甚至包括圖片
  body.onload: 等doucment載入完成再載入相應的指令碼
  document.onreadystatechange: 當頁面載入狀態改變的時候執行這個方法。
2.readyState 定義和用法
  用法 直接使用document.readyState
  返回值包含以下幾種:
uninitialized - 還未開始載入;
loading - 載入中;
interactive - 已載入,文件與使用者可以開始互動;
complete - 載入完成;
  需要注意的是 html頁面只能檢測到interactive及complete這兩種狀態
  以上就是簡單的做一個頁面載入效果的流程,還是應該避免使用定時器的寫法