為實現下拉刷新功能,大多H5框架都是通過DIV模擬下拉回彈動畫,在低端android手機上,DIV動畫經常出現卡頓現象(特別是圖文列表的情況); 通過雙webview解決這個DIV的拖動流暢度問題;拖動時,拖動的不是div,而是一個完整的webview(子webview),回彈動畫使用原生動畫;在iOS平臺,H5的動畫已經比較流暢,故依然使用H5方案。兩個平臺實現雖有差異,但經過封裝,可使用一套代碼實現下拉刷新。
第一步: 創建子頁面,因為拖動的其實是個子頁面的整體
```
mui.init({
subpages:[{
url:pullrefresh-subpage-url,//下拉刷新內容頁面地址
id:pullrefresh-subpage-id,//內容頁面標志
styles:{ top:subpage-top-position,//內容頁面頂部位置,需根據實際頁面布局計算,若使用標準mui導航,頂部默認為48px; .....//其它參數定義
}
}]
});
```
第二步:內容頁面需按照如下DOM結構構建
```
<!--下拉刷新容器-->
<div id="pullrefresh" class="mui-content mui-scroll-wrapper">
<div class="mui-scroll">
<!--數據列表-->
<ul class="mui-table-view mui-table-view-chevron">
<li class="mui-table-view-cell">1</li>
</ul>
</div>
</div>
```
第三步:通過mui.init方法中pullRefresh參數配置下拉刷新各項參數
```
mui.init({
pullRefresh : {
container:"#pullrefresh",//下拉刷新容器標識,querySelector能定位的css選擇器均可,比如:id、.class等
down : {
contentdown : "下拉可以刷新",//可選,在下拉可刷新狀態時,下拉刷新控件上顯示的標題內容
contentover : "釋放立即刷新",//可選,在釋放可刷新狀態時,下拉刷新控件上顯示的標題內容
contentrefresh : "正在刷新...",//可選,正在刷新狀態時,下拉刷新控件上顯示的標題內容
callback : fn //必選,刷新函數,根據具體業務來編寫,比如通過ajax從服務器獲取新數據;
} }
});
```
第四步:設置執行函數
```
function fn() {
//業務邏輯代碼,比如通過ajax從服務器獲取新數據; ...... //注意,加載完新數據后,必須執行如下代碼,注意:若為ajax請求,則需將如下代碼放置在處理完ajax響應數據之后
mui('#pullrefresh').pullRefresh().endPulldownToRefresh(); //這行代碼會隱藏掉 正在加載... 容器
}
```
- 界面初始化
- H5plus初始化
- 創建子頁面
- 打開界面
- 參數傳遞
- 控制頁面load顯示
- 關閉界面
- 底部導航切換界面
- 自定義事件
- 頁面預加載
- 消息框
- 原生模式ActionSheet
- 下拉刷新
- 上拉加載
- 上拉下拉整合
- 手勢
- 遮罩
- 滑動導航選擇
- 圖片輪播
- 擴展-自定義導航
- Ajax-get請求
- Ajax-post請求
- 照相機
- 訪問相冊
- 蜂鳴提示音
- 手機震動
- 彈出菜單
- 設備信息
- 手機信息
- 發送短信
- 撥打電話
- 發送郵件
- 本地存儲
- 圖片上傳
- 地理位置
- 設置IOS狀態欄
- 手機通訊錄
- 啟動頁設置
- PHP后臺搭建
- JSON轉換
- 隱藏本頁面中滾動條
- 首次啟動歡迎頁
- 數據庫增刪改查和接口
- 推送
- 瀏覽器打開新頁面
- PDF瀏覽
- 自定義下拉刷新
- 即時聊天
- 雙擊安卓返回鍵退出
- QQ登錄