最近在做移动端的项目,用到了mui的上拉加载,整理如下:

1、需要引入的css、js
<link rel="stylesheet" href="common/mui/css/mui.min.css" rel="external nofollow" > <script src="js/jquery-3.2.0.min.js"></script> <script src="common/mui/js/mui.min.js"></script>
2、静态页的dom结构
<div id="pullrefresh" class="mui-content mui-scroll-wrapper" class="maincon"> <div class="mui-scroll"> <div class="mui-table-view mui-table-view-chevron"> </div> </div> </div>
3、静态页面 js对应的代码
<script type="text/javascript">
(function(){
//上拉加载下拉刷新
mui.init({
pullRefresh: {
container: '#pullrefresh',
up: {
contentrefresh: '正在加载...',
callback: pullupRefresh
}
}
});
//加载更多
var dataNum=12;//获取数据总数
var pageSize=3;//每页显示条数
var counter=1;//计数器
var pageStart=0;//开始数据条数
getData(pageStart,pageSize);
function getData(pageStart,pageSize){
//显示数不足每页显示条数
if(dataNum-pageStart<pageSize){
pageSize=dataNum-pageStart;
data(pageStart,pageSize);
console.log("显示数不足每页显示条数");
}
//显示隐藏加载更多
else if(pageStart+pageSize>=dataNum){
data(pageStart,pageSize);
console.log("没有更多数据了");
//没有更多数据了
}else{
data(pageStart,pageSize);
console.log("显示dataNum"+dataNum+"pageSize"+pageSize+"pageStart"+pageStart);
//显示
}
}
function data(pageStart,pageSize){
//业务
var result="";
for(var i=pageStart;i<(pageStart+pageSize);i++){
result+='<div class="goode-msg">'+
'<div class="goods">'+
'<p class="goode-name">呜呜呜呜</p>'+
'<span class="goods-price">价格:10元</span>'+
'<span class="icon-golden"></span>'+
'<span class="goods-golden">送1111</span>'+
'</div>'+
'<div class="buycon">'+
'<a class="buybtn buybtnabled" onclick="shop(5)">立即购买</a>'+
'</div>'+
'</div>'
}
console.log(jQuery);
jQuery(result).insertBefore('#pullrefresh .mui-scroll .mui-table-view');
}
/**
* 上拉加载具体业务实现
*/
function pullupRefresh() {
setTimeout(function() {
var flag=counter++<(dataNum/pageSize)
console.log(dataNum/pageSize);
mui('#pullrefresh').pullRefresh().endPullupToRefresh((!flag)); //参数为true代表没有更多数据了。
var scroll = document.body.querySelector('.mui-scroll .mui-table-view');
var item = document.body.querySelectorAll('.goode-msg');
console.log(counter);
if(flag){
console.log(counter);
pageStart=counter*pageSize;
data(pageStart,pageSize);
}
}, 1500);
}
})();
</script>
4、与服务端联调时 js做了改动,如下:
//加载更多
var pageSize = 15;//每页显示条数
var counter = 1;//计数器
var pageStart = 0;//开始数据条数
var Flag=true;
data();
function data() {
//业务
var result = "";
$.ajax({
type: 'post',
url: '/xxx/xxx',
async: false,
dataType: "json",
data: {page: counter},
success: function (data) {
Flag=data[0].dd==null||data[0].dd==undefined||data[0].dd=='';
//判断是否有返回值 当没有返回值的时候就为空,则代表没有更多数据了
console.log(Flag);
if(Flag==false){
counter++;
}
$.each(data[0].dd, function (i, value) {
result += '<div class="goode-msg">' +
'<div class="goods">' +
'<input type="hidden" class="id" value="'+value.id+'">' +
'<input type="hidden" class="aa" value="'+value.aa+'">' +
'<p class="goode-name" id="title'+value.id+'">'+value.title+'</p>' +
'<input type="hidden" class="goods-price-cent" value="'+value.price.cent/100+'">' +
'<span class="goods-price">价格:<b id="price'+value.id+'">'+value.price.cent/100+'</b>元</span>' +
'<span class="icon-golden"></span>' +
'<span class="goods-golden">送<b id="ss'+value.id+'">'+value.ss+'</b>ss</span>' +
'</div>' +
'<div class="buycon">' +
'<a class="buybtn buybtnabled" onclick="shop('+i+')">立即购买</a>' +
'</div>' +
'</div>'
});
jQuery(result).insertBefore('#pullrefresh .mui-scroll .mui-table-view');
}
}
);
}
/**
* 上拉加载具体业务实现
*/
function pullupRefresh() {
setTimeout(function () {
mui('#pullrefresh').pullRefresh().endPullupToRefresh((Flag)); //参数为true代表没有更多数据了。
data();
}, 1500);
}
})();
5、踩的坑
注意:一定要先引入jquery、mui.js否则 js代码会不识别mui。
在jquery中,如果要给动态生成的节点绑定事件,以前要用live,现在用delegate或者on,原理是利用冒泡实现事件委托,也就是给生成节点的父节点预先绑定事件。
以上所述是小编给大家介绍的mui上拉加载功能实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# mui上拉加载
# MUI 上拉刷新/下拉加载功能实例代码
# MUI实现上拉加载和下拉刷新效果
# 加载
# 条数
# 每页
# 绑定
# 小编
# 返回值
# 在此
# 给大家
# 要用
# 要给
# 所述
# 正在加载
# 给我留言
# 服务端
# 感谢大家
# 为空
# 判断是否
# 疑问请
# 有任何
# javascript
相关文章:
建站DNS解析失败?如何正确配置域名服务器?
免费ppt制作网站,有没有值得推荐的免费PPT网站?
公众号网站制作网页,微信公众号怎么制作?
如何在Golang中引入测试模块_Golang测试包导入与使用实践
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
建站之星展会模板:智能建站与自助搭建高效解决方案
如何快速搭建高效香港服务器网站?
如何配置支付宝与微信支付功能?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
临沂网站制作企业,临沂第三中学官方网站?
宝塔建站后网页无法访问如何解决?
,在苏州找工作,上哪个网站比较好?
如何高效生成建站之星成品网站源码?
网站制作的步骤包括,正确网址格式怎么写?
北京网站制作网页,网站升级改版需要多久?
如何使用Golang table-driven基准测试_多组数据测量函数效率
c# Task.ConfigureAwait(true) 在什么场景下是必须的
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
如何制作网站标识牌,动态网站如何制作(教程)?
建站之星免费模板:自助建站系统与智能响应式一键生成
如何通过wdcp面板快速创建网站?
制作网站怎么制作,*游戏网站怎么搭建?
如何用搬瓦工VPS快速搭建个人网站?
外汇网站制作流程,如何在工商银行网站上做外汇买卖?
自助网站制作软件,个人如何自助建网站?
如何快速上传建站程序避免常见错误?
建站之星如何助力企业快速打造五合一网站?
山东网站制作公司有哪些,山东大源集团官网?
相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?
如何用低价快速搭建高质量网站?
岳西云建站教程与模板下载_一站式快速建站系统操作指南
javascript中对象的定义、使用以及对象和原型链操作小结
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
网站制作报价单模板图片,小松挖机官方网站报价?
如何挑选最适合建站的高性能VPS主机?
电脑免费海报制作网站推荐,招聘海报哪个网站多?
建站与域名管理如何高效结合?
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
如何通过FTP服务器快速搭建网站?
如何配置FTP站点权限与安全设置?
如何通过建站之星自助学习解决操作问题?
东莞专业制作网站的公司,东莞大学生网的网址是什么?
如何用景安虚拟主机手机版绑定域名建站?
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?
如何彻底删除建站之星生成的Banner?
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
网站制作新手教程,新手建设一个网站需要注意些什么?
建站之星CMS建站配置指南:模板选择与SEO优化技巧
*请认真填写需求信息,我们会在24小时内与您取得联系。