html:
引入css
mescroll.min.css
scrollStyle.css
引入js
vue.min.js // 我是用vue所以引入
框架版 mescroll.m.js
原生版 mescroll.min.js
标签结构
<section>
<div id="mescroll" class="mescroll" >
<div class="mescroll-bounce">
<div class="container relative">
<ul id="dataList" class="iListGroup">
//内容区域 可diy
<li class="overflow relative" v-for="(item,i) in pdlist">
<div class="left lf imgBgCover" :style="'background-image:url('+item.StoreLogo+')'">
<!--../../Content/Images/testImg/test1.png-->
<!--<img src="../../Content/Images/testImg/testShop1.png" class="imgScale" alt="">-->
</div>
<div class="right lf" >
<h5 class="ell">{{item.StoreName}}</h5>
<h6 class="ell2Line">预定时间:{{item.CreateTime}}</h6>
</div>
<div class="btnList">
<button class="btn1" @click="checkDal(item)">查看详情</button>
<button class="btn2" @click="cancelOrder(item)">取消预定</button>
</div>
</li>
//内容区域 可diy
</ul>
</div>
</div>
</div>
</section>
js:
vue:
data中添加:pageIndex:1 //当前页数
pageSize:10 //请求数量
pdlist //数据容器
生命周期mouted:
self.mescroll = new MeScroll("mescroll", {
up: {
callback: function(){self.getMyReserve(self.pageIndex,self.upCallback.bind(self))}, //上拉加载更多
//以下参数可删除,不配置
page:{size:self.pageSize}, //可配置每页8条数据,默认10
// toTop:{ //配置回到顶部按钮
// src : "../res/img/mescroll-totop.png", //默认滚动到1000px显示,可配置offset修改
// //offset : 1000
// },
empty:{ //配置列表无任何数据的提示
warpId:"dataList",
// icon : "../res/img/mescroll-empty.png" ,
tip : "亲,暂无相关数据哦~" ,
// btntext : "去逛逛 >" ,
// btnClick : function() {
// alert("点击了去逛逛按钮");
// }
}
},
down: {//下拉刷新
callback: function(){self.getMyReserve(1,self.downCallback.bind(self))}, //下拉刷新
//以下参数可删除,不配置
page:{size:self.pageSize}, //可配置每页8条数据,默认10
// toTop:{ //配置回到顶部按钮
// src : "../res/img/mescroll-totop.png", //默认滚动到1000px显示,可配置offset修改
// //offset : 1000
// },
empty:{ //配置列表无任何数据的提示
warpId:"dataList",
// icon : "../res/img/mescroll-empty.png" ,
tip : "-End-" ,
// btntext : "去逛逛 >" ,
// btnClick : function() {
// alert("点击了去逛逛按钮");
// }
}
},
});
//初始化vue后,显示vue模板布局
document.getElementById("dataList").style.display="block";
method:方法
getMyReserve: function(pageIndex,fun) { //请求内容
var data = {
PageIndex : pageIndex,
PageSize: this.pageSize,
};
ihotyi.iMyReserve(res=>{
if(res.Data){
this.pageIndex++;
fun && fun(res.Data);
}else
mAlert('返回data数据为空')
},data)
},
downCallback: function(curPageData) {//刷新
log('up')
this.pageIndex = 1;
//联网加载数据
var self = this;
getListDataFromNet(self.pageIndex, self.pageSize, function() {
//curPageData=[]; //打开本行注释,可演示列表无任何数据empty的配置
//如果是第一页需手动制空列表
if(self.pageIndex === 1) self.pdlist = [];
//更新列表数据
self.pdlist = self.pdlist.concat(curPageData);
//联网成功的回调,隐藏下拉刷新和上拉加载的状态;
//mescroll会根据传的参数,自动判断列表如果无任何数据,则提示空;列表无下一页数据,则提示无更多数据;
//方法一(推荐): 后台接口有返回列表的总页数 totalPage
//self.mescroll.endByPage(curPageData.length, totalPage); //必传参数(当前页的数据个数, 总页数)
//方法二(推荐): 后台接口有返回列表的总数据量 totalSize
//self.mescroll.endBySize(curPageData.length, totalSize); //必传参数(当前页的数据个数, 总数据量)
//方法三(推荐): 您有其他方式知道是否有下一页 hasNext
//self.mescroll.endSuccess(curPageData.length, hasNext); //必传参数(当前页的数据个数, 是否有下一页true/false)
//方法四 (不推荐),会存在一个小问题:比如列表共有20条数据,每页加载10条,共2页.如果只根据当前页的数据个数判断,则需翻到第三页才会知道无更多数据,如果传了hasNext,则翻到第二页即可显示无更多数据.
self.mescroll.endSuccess(curPageData.length);
}, function() {
//联网失败的回调,隐藏下拉刷新和上拉加载的状态;
self.mescroll.endErr();
});
},
upCallback: function(curPageData) {//加载更多
log('asdf');
//联网加载数据
var self = this;
getListDataFromNet(self.pageIndex, self.pageSize, function() {
//curPageData=[]; //打开本行注释,可演示列表无任何数据empty的配置
//如果是第一页需手动制空列表
//更新列表数据
self.pdlist = self.pdlist.concat(curPageData);
//联网成功的回调,隐藏下拉刷新和上拉加载的状态;
//mescroll会根据传的参数,自动判断列表如果无任何数据,则提示空;列表无下一页数据,则提示无更多数据;
//方法一(推荐): 后台接口有返回列表的总页数 totalPage
//self.mescroll.endByPage(curPageData.length, totalPage); //必传参数(当前页的数据个数, 总页数)
//方法二(推荐): 后台接口有返回列表的总数据量 totalSize
//self.mescroll.endBySize(curPageData.length, totalSize); //必传参数(当前页的数据个数, 总数据量)
//方法三(推荐): 您有其他方式知道是否有下一页 hasNext
//self.mescroll.endSuccess(curPageData.length, hasNext); //必传参数(当前页的数据个数, 是否有下一页true/false)
//方法四 (不推荐),会存在一个小问题:比如列表共有20条数据,每页加载10条,共2页.如果只根据当前页的数据个数判断,则需翻到第三页才会知道无更多数据,如果传了hasNext,则翻到第二页即可显示无更多数据.
self.mescroll.endSuccess(curPageData.length);
}, function() {
//联网失败的回调,隐藏下拉刷新和上拉加载的状态;
self.mescroll.endErr();
});
},
结构外定义function
getListDataFromNet
function getListDataFromNet(pageNum,pageSize,successCallback,errorCallback) {
//延时一秒,模拟联网
setTimeout(function () {
successCallback&&successCallback();//成功回调
// })
// .catch(function(error) {
// errorCallback&&errorCallback()//失败回调
// });
},500)
}