使用MUI框架,模擬手機端的下拉刷新,上拉加載操作。
阿新 • • 發佈:2017-09-03
項目應用 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框架,模擬手機端的下拉刷新,上拉加載操作。