mescroll官网:http://www.mescroll.com
mescroll文档:http://www.mescroll.com/api.html?v=20200315
js和css到官网下载
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" name="viewport" />
<meta name="referrer" content="no-referrer" />
<title>测试上拉加载=下拉刷新</title>
<link rel="stylesheet" href="dist/mescroll.min.css">
<style type="text/css">
* {
margin: 0;
padding: 0;
-webkit-touch-callout:none;
-webkit-user-select:none;
-webkit-tap-highlight-color:transparent;
font-size: .14rem;
}
body{background-color: white}
ul{list-style-type: none}
a {text-decoration: none;color: #18B4FE;}
/*模拟的标题*/
.header{
z-index: 9990;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 44px;
line-height: 44px;
text-align: center;
border-bottom: 1px solid #eee;
background-color: white;
font-size: .16rem;
}
.header .btn-left{
position: absolute;
top: 0;
left: 0;
padding:12px;
line-height: 22px;
}
.header .btn-right{
position: absolute;
top: 0;
right: 0;
padding: 0 12px;
}
/*说明*/
.mescroll .notice{
font-size: 14px;
padding: 20px 0;
border-bottom: 1px solid #eee;
text-align: center;
color:#555;
}
/*列表*/
.mescroll{
position: fixed;
top: 44px;
bottom: 0;
height: auto;
}
/*展示上拉加载的数据列表*/
.news-list li{
padding: 16px;
border-bottom: 1px solid #eee;
}
.news-list .new-content{
font-size: 14px;
margin-top: 6px;
margin-left: 10px;
color: #666;
}
</style>
</head>
<body>
<!--标题-->
<p class="header">新闻列表</p>
<!--滑动区域-->
<div id="mescroll" class="mescroll">
<!-- <p class="notice">本Demo的下拉刷新: 添加新数据到列表顶部</p> -->
<ul id="newsList" class="news-list">
<!--<li>
<p>【新闻1】标题标题标题标题</p>
<p class="new-content">内容内容内容内容内容内容内容内容内容</p>
</li>-->
</ul>
</div>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="dist/mescroll.min.js"></script>
<script type="text/javascript">
$("html").css("font-size",(window.innerWidth)/3.75 + 'px');
</script>
<script>
let pages = 0; //页数
$(function(){
//创建MeScroll对象
var mescroll = new MeScroll("mescroll", {
down: {
auto: true, //是否在初始化完毕之后自动执行下拉回调callback; 默认true
callback: downCallback //下拉刷新的回调
},
up: {
auto: false, //是否在初始化时以上拉加载的方式自动加载第一页数据; 默认false
isBounce: true, //此处禁止ios回弹,解析(务必认真阅读,特别是最后一点): http://www.mescroll.com/qa.html#q10
callback: upCallback, //上拉回调,此处可简写; 相当于 callback: function (page) { upCallback(page); }
toTop:{ //配置回到顶部按钮
src : "img/mescroll-totop.png", //默认滚动到1000px显示,可配置offset修改
offset : 1000
},
htmlNodata: '<p class="upwarp-nodata">-- 没有更多数据了 --</p>',
}
});
/*下拉刷新的回调 */
function downCallback(){
pages = 1;
getListDataFromNet(pages, 1, function(data){
mescroll.endSuccess();
setListData(data, false);
}, function(){
//联网失败的回调,隐藏下拉刷新的状态
mescroll.endErr();
});
}
/*上拉加载的回调 */
function upCallback(page){
pages += 1;
getListDataFromNet(pages, page.size, function(curPageData){
console.log('执行')
mescroll.endSuccess(curPageData.length);
setListData(curPageData, true);
}, function(){
//联网失败的回调,隐藏下拉刷新和上拉加载的状态;
mescroll.endErr();
});
}
/*设置列表数据*/
function setListData(curPageData, isAppend) {
console.log(isAppend)
if (isAppend){
$("#newsList").append(curPageData)
} else{ //下拉刷新
$("#newsList").html(curPageData)
}
}
let dataList = [
{title:'【新闻1】标题标题标题标题',content:'内容内容内容内容内容内容内容内容内容'},
{title:'【新闻1】标题标题标题标题',content:'内容内容内容内容内容内容内容内容内容'},
{title:'【新闻1】标题标题标题标题',content:'内容内容内容内容内容内容内容内容内容'},
{title:'【新闻1】标题标题标题标题',content:'内容内容内容内容内容内容内容内容内容'},
{title:'【新闻1】标题标题标题标题',content:'内容内容内容内容内容内容内容内容内容'},
{title:'【新闻1】标题标题标题标题',content:'内容内容内容内容内容内容内容内容内容'},
{title:'【新闻1】标题标题标题标题',content:'内容内容内容内容内容内容内容内容内容'},
{title:'【新闻1】标题标题标题标题',content:'内容内容内容内容内容内容内容内容内容'},
{title:'【新闻1】标题标题标题标题',content:'内容内容内容内容内容内容内容内容内容'}
];
function getListDataFromNet(pageNum,pageSize,successCallback,errorCallback) {
console.log('请求');
console.log('页码:'+pageNum)
setTimeout(function () {
try{
let html = '';
dataList.map((item,index)=>{
html += `<li>
<p>【新闻${index}】标题标题标题标题</p>
<p class="new-content">内容内容内容内容内容内容内容内容内容</p>
</li>`;
})
if(pageNum == 3 || pageNum == 6){html = ''}; // 模仿请求没数据了
successCallback&&successCallback(html);
}catch(e){
//联网失败的回调
errorCallback&&errorCallback();
}
},1000)
}
});
</script>
</body>
</html>
<!--
#1.引入jq 因为该ui基于jq
#2.引入mescroll.min.css 引入mescroll.min.js
#3.在html写入控制器
-->