Framework7 - 重新整理



描述

它是一個特殊的元件,用於透過下拉重新整理頁面內容。

以下程式碼顯示瞭如何重新整理頁面內容:

<div class = "page">
   <!-- Page content should have additional "pull-to-refresh-content" class -->
   <div class = "page-content pull-to-refresh-content" data-ptr-distance = "55">
      <!-- Default pull to refresh layer-->
      <div class = "pull-to-refresh-layer">
         <div class = "preloader"></div>
      <div class = "pull-to-refresh-arrow"></div>
   </div>

   <!-- usual content below -->
   <div class = "list-block">
      ...
   </div>
</div>

重新整理中使用了以下類:

  • page-content - 它具有額外的 pull-to-refresh-content 類,並且需要啟用下拉重新整理。

  • pull-to-refresh-layer - 它是一個隱藏的層,用於 下拉重新整理 的視覺元素,它只是一個載入動畫和一個箭頭。

  • data-ptr-distance = "55" - 此附加屬性允許您設定自定義“下拉重新整理”觸發距離,其預設值為 44px。

下拉重新整理事件

在“下拉重新整理”中,有一些 JavaScript 事件,如下表所示:

序號 事件及描述 目標
1

pullstart

當您開始下拉重新整理內容時,將觸發此事件。

下拉重新整理內容。

<div class = "pull-to-refresh-content">
2

pullmove

當您正在下拉重新整理內容時,將觸發此事件。

下拉重新整理內容。

<div class="pull-to-refresh-content">
3

pullend

當您釋放下拉重新整理內容時,將觸發此事件。

下拉重新整理內容。

<div class="pull-to-refresh-content">
4

refresh

當下拉重新整理進入 "refreshing" 狀態時,將觸發此事件。

下拉重新整理內容。

<div class="pull-to-refresh-content">
5

refreshdone

重新整理完成後並返回初始狀態時,將觸發此事件。這將在呼叫 pullToRefreshDone 方法後完成。

下拉重新整理內容。

<div class="pull-to-refresh-content">

有一些 App 方法可以與下拉重新整理一起使用。

序號 App 方法及描述
1

myApp.pullToRefreshDone(ptrContent)

用於重置 下拉重新整理 內容。

2

myApp.pullToRefreshTrigger(ptrContent)

用於在指定的 下拉重新整理內容 上觸發重新整理。

3

myApp.destroyPullToRefresh(ptrContent)

用於 銷燬/停用 指定 下拉重新整理內容 上的下拉重新整理。

4

myApp.initPullToRefresh(ptrContent)

用於 初始化/啟用 下拉重新整理內容

其中 ptrContent 用於 HTMLElementstring 到下拉重新整理內容,以重置/觸發或停用/啟用。

示例

以下示例演示了重新整理元件的使用,該元件啟動頁面內容的重新整理:

<!DOCTYPE html>
<html>
   <head>
      <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui">
      <meta name="apple-mobile-web-app-capable" content="yes">
      <meta name="apple-mobile-web-app-status-bar-style" content="black">
      <title>Pull To Refresh</title>
      <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/css/framework7.ios.min.css">
      <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/css/framework7.ios.colors.min.css">
   </head>
   <div class="views">
      <div class="view view-main">
         <div class="pages">
            <div data-page="home" class="page navbar-fixed">
               <div class="navbar">
                  <div class="navbar-inner">
                     <div class="left"> </div>
                     <div class="center">Pull To Refresh</div>
                     <div class="right"> </div>
                  </div>
               </div>
               <div class="page-content pull-to-refresh-content">
                  <div class="pull-to-refresh-layer">
                     <div class="preloader"></div>
                     <div class="pull-to-refresh-arrow"></div>
                  </div>
                  <div class="list-block media-list">
                     <ul>
                        <li class="item-content">
                           <div class="item-media"><img src="/framework7/images/apple.png" width="44"></div>
                           <div class="item-inner">
                              <div class="item-title-row">
                                 <div class="item-title">apple</div>
                              </div>
                           </div>
                        </li>
                        <li class="item-content">
                           <div class="item-media"><img src="/framework7/images/froots_img.jpg" width="44"></div>
                           <div class="item-inner">
                              <div class="item-title-row">
                                 <div class="item-title">strawberry</div>
                              </div>
                           </div>
                        </li>
                        <li class="item-content">
                           <div class="item-media"><img src="/framework7/images/mango.jpg" width="44"></div>
                           <div class="item-inner">
                              <div class="item-title-row">
                                 <div class="item-title">Mango</div>
                              </div>
                           </div>
                        </li>
                     </ul>
                     <div class="list-block-label">
                        <p>Just pull page down to let the magic happen.</p>
                     </div>
                  </div>
               </div>
            </div>
         </div>
      </div>
   </div>
   <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/js/framework7.min.js"></script>
   <script>
      var myApp = new Framework7();

      var $$ = Dom7;

      // Dummy Content
      var fruits = ['mango', 'orange', 'watermelon', 'banana'];
      // Pull to refresh content
      var ptrContent = $$('.pull-to-refresh-content');
      // Add 'refresh' listener on it
      ptrContent.on('refresh', function (e) {
         // Emulate 2s loading
         setTimeout(function () {
            var picURL = 'images/Fruit.jpg' + Math.round(Math.random() * 100);
            var fruit = fruits[Math.floor(Math.random() * fruits.length)];
            var itemHTML = '<li class="item-content">' +
               '<div class="item-media"><img src="/framework7/images/Fruit.jpg" width="44"/></div>' +
               '<div class="item-inner">' +
               '<div class="item-title-row">' +
               '<div class="item-title">' + fruit + '</div>' +
                  '</div>' + '</div>' + '</li>';
            // Prepend new list element
            ptrContent.find('ul').prepend(itemHTML);
				
            // When loading done, we need to reset it
            myApp.pullToRefreshDone();
         }, 2000);
      });
   </script>
</html>

輸出

讓我們執行以下步驟來檢視上面給出的程式碼是如何工作的:

  • 將上面給出的 HTML 程式碼儲存為 pull_to_refresh.html 檔案到伺服器根資料夾中。

  • 以 https:///pull_to_refresh.html 的方式開啟此 HTML 檔案,輸出將如下所示。

  • 當用戶向下滑動時,頁面將使用內容重新整理。

廣告

© . All rights reserved.