1. 程式人生 > >使用MUI框架,模擬手機端的下拉刷新,上拉加載操作。

使用MUI框架,模擬手機端的下拉刷新,上拉加載操作。

項目應用 pan true .net 沒有 拖動 test css選擇器 query

套用mui官方文檔的一句話:“開發者只需關心業務邏輯,實現加載更多數據即可”。真的是不錯的框架。

想更多的了解這個框架:http://dev.dcloud.net.cn/mui/

那麽如何實現上拉刷新,下拉加載的功呢?

首先需要一個容器:

1 <!--下拉刷新容器-->
2 <div id="refreshContainer" class="mui-content mui-scroll-wrapper">
3   <div class="mui-scroll">
4   <!--數據列表-->
5     <ul id="testUl" class
="mui-table-view mui-table-view-chevron"></ul> 6   </div> 7 </div>

然後進行初始化操作,通過mui.init方法中pullRefresh參數配置上拉加載各項參數:

mui.init({
  pullRefresh : {
    container:refreshContainer,//待刷新區域標識,querySelector能定位的css選擇器均可,比如:id、.class等
    up : {
      height:50,//可選.默認50.觸發上拉加載拖動距離
      auto:true
,//可選,默認false.自動上拉加載一次 contentrefresh : "正在加載...",//可選,正在加載狀態時,上拉加載控件上顯示的標題內容 contentnomore:‘沒有更多數據了‘,//可選,請求完畢若沒有更多數據時顯示的提醒內容; callback :pullfresh-function //必選,刷新函數,根據具體業務來編寫,比如通過ajax從服務器獲取新數據; } } });

這裏重點關註callback參數項,為必選內容,裏邊寫刷新函數,根據具體的業務來寫,在實際項目中,通常是通過ajax從服務器獲取數據,然後進行html的動態拼接,形成數據項。

下面舉一個很簡單的例子:(實現下拉加載的功能)

容器:

1 1 <!--下拉刷新容器-->
2 2 <div id="refreshContainer" class="mui-content mui-scroll-wrapper">
3 3   <div class="mui-scroll">
4 4   <!--數據列表-->
5 5     <ul id="testUl" class="mui-table-view mui-table-view-chevron"></ul>
6 6   </div>
7 7 </div>

一會要將數據放到 id=“testUl”的ul標簽下,id當然隨便取

調用mui.init方法:

 1 <script type="text/javascript">
 2     mui.init({
 3         pullRefresh : {
 4             container:refreshContainer,//待刷新區域標識,querySelector能定位的css選擇器均可,比如:id、.class等
 5             up : {
 6                 height:50,//可選.默認50.觸發上拉加載拖動距離
 7                 auto:true,//可選,默認false.自動上拉加載一次
 8                 contentrefresh : "正在加載...",//可選,正在加載狀態時,上拉加載控件上顯示的標題內容
 9                 contentnomore:‘沒有更多數據了‘,//可選,請求完畢若沒有更多數據時顯示的提醒內容;
10                 callback: function () {//必選,刷新函數,根據具體業務來編寫,比如通過ajax從服務器獲取新數據;
11 
12                     /*每次加載動態的添加一個li*/
13                     $("#testUl").append($("<li>" + new Date() + "</li>"));
14 
15                     this.endPullupToRefresh(false);
16                 } 
17                 }
18                 }
19                 });
20 </script>    

callback參數中,寫的是加載函數,每次加載,動態生成一個li標簽,用當前時間作為測試數據,貼到id=testUl的ul標簽之下。

這裏註意callback中的function最後的 this.endPullupToRefresh(false); 表示結束加載,參數可選true或false,true表示結束加載,false繼續加載,在實際項目應用中,通常要根據服務器回傳的數據量做一下判斷。

over!! 這樣每次下拉,都會加載當前的時間。

使用MUI框架,模擬手機端的下拉刷新,上拉加載操作。