1. 程式人生 > >淺談網站頭部載入進度條的實現---NProgress

淺談網站頭部載入進度條的實現---NProgress

我們在移動端的瀏覽器上經常能看到頁面上方有一個進度條載入,pc端網頁也有,例如開啟我的github主頁:https://github.com/fzg2lj 點選導航欄上的stars,就會出現一個載入進度條。實現這種效果有兩種方式。

第一種:利用ajax全域性請求方式

程式碼如下

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>主頁面</title>
  <link rel="stylesheet" href="bootstrap.css">
  <link rel="stylesheet" href="../nprogress.css">
  <style>
    .loading {
      display: none;
      position: fixed;
      top: 0;
      left: 0;
      bottom: 0;
      right: 0;
      background-color: rgba(0, 0, 0, .6);
      font-size: 30px;
    }
  </style>
  <script src="../nprogress.js"></script>
</head>
<body>
  <div class="container pt-4">
    <h1>會員中心</h1>
    <hr>
    <div class="row">
      <aside class="col-md-3">
        <div class="list-group">
          <a class="list-group-item list-group-item-action" href="index.html">我的資料</a>
          <a class="list-group-item list-group-item-action" href="cart.html">我的購物車</a>
          <a class="list-group-item list-group-item-action" href="orders.html">我的訂單</a>
        </div>
      </aside>
      <main id="main" class="col-md-9">
        <h2>我的個人資料</h2>
        <hr>
      </main>
    </div>
  </div>
  <div class="loading">正在玩命載入中...</div>
  <script src="../jquery.js"></script>
<script>
$(function($){
$(document)
        .ajaxStart(function () {
       //只要有 ajax 請求發生 就會執行
         $('.loading').fadeIn()
        // 顯示載入提示
     console.log('注意即將要開始請求了')
       })
     .ajaxStop(function () {
       // 只要有 ajax 請求結束 就會執行
        $('.loading').fadeOut()
       // 結束提示
       console.log('請求結束了')
       })
       });
       </script>

不過推薦第二種方式,有一個現成的輕量級進度載入庫 http://ricostacruz.com/nprogress/

第二種:NProgress

$(document)
        .ajaxStart(function () {
          NProgress.start()
        })
        .ajaxStop(function () {
          NProgress.done()
        })

只要將第二種的程式碼替換掉上面第一種的程式碼,在點選跳轉其他頁面的時候,就會顯示載入進度條