- Framework7 教程
- Framework7 - 首頁
- Framework7 - 概述
- Framework7 - 環境
- Framework7 元件
- Framework7 - 佈局
- Framework7 - 導航欄
- Framework7 - 工具欄
- Framework7 - 搜尋欄
- Framework7 - 狀態列
- Framework7 - 側邊欄
- Framework7 - 內容塊
- Framework7 - 佈局網格
- Framework7 - 覆蓋層
- Framework7 - 載入動畫
- Framework7 - 進度條
- Framework7 - 列表檢視
- Framework7 - 手風琴
- Framework7 - 卡片
- Framework7 - 晶片
- Framework7 - 按鈕
- Framework7 - 操作按鈕
- Framework7 - 表單
- Framework7 - 標籤頁
- Framework7 - Swiper 滑塊
- Framework7 - 圖片瀏覽器
- Framework7 - 自動完成
- Framework7 - 選擇器
- Framework7 - 日曆
- Framework7 - 重新整理
- Framework7 - 無限滾動
- Framework7 - 訊息
- Framework7 - 訊息欄
- Framework7 - 通知
- Framework7 - 延遲載入
- Framework7 樣式
- Framework7 - 顏色主題
- Framework7 - 分割線
- Framework7 模板
- Framework7 - 模板概述
- Framework7 - 自動編譯
- Framework7 - Template7 頁面
- Framework7 快速點選
- Framework7 - 活動狀態
- Framework7 - 長按事件
- Framework7 - 觸控漣漪
- Framework7 有用資源
- Framework7 - 快速指南
- Framework7 - 有用資源
- Framework7 - 討論
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 用於 HTMLElement 或 string 到下拉重新整理內容,以重置/觸發或停用/啟用。
示例
以下示例演示了重新整理元件的使用,該元件啟動頁面內容的重新整理:
<!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 檔案,輸出將如下所示。
當用戶向下滑動時,頁面將使用內容重新整理。