博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mui的上拉下载和下拉刷新
阅读量:5182 次
发布时间:2019-06-13

本文共 6474 字,大约阅读时间需要 21 分钟。

head部分(引入mui)

html部分(scroll容器)

上拉显示更多

js部分(...)

window.onload = function(){  var pageSize = 6;//每次返回的数据条数    var isOver = false;//是否加载完    var startLimit = 1;//每次传入后台的页码,比如123    var txt = "";//可忽略    mui.init({     pullRefresh: {         container: "#emergeData",//承载的容器         down: {    //下拉刷新             callback: function(){                 setTimeout(function(){                     mui("#emergeData").pullRefresh().endPulldownToRefresh(isOver); //refresh completed                     emergeListDownData();//下拉刷新函数                 }, 500);             }         },        up: {    //上拉加载             height:100,             callback: function(some){                 setTimeout(function(){                      emergeListUpData();//上拉加载函数                     mui("#emergeData").pullRefresh().endPullupToRefresh(isOver);//结束上拉加载                 },100);             }         }     }    });}

下拉刷新:emergeListDownData()

function emergeListDownData(){
//下拉刷新 $.loadingShow();//显示加载中... 可忽略 var urlValue = $.getUrlParam('urlvalue');//获取url参数 document.querySelector(".mui-pull-bottom-pocket").style.opacity=0;//隐藏mui自带 '加载更多'字体(自己添加的"上拉加载更多") $.alarmData.emergeListPage.param.cuurrentpage = 1;//每次刷新,传递给后台 1 表示需要的是第一页的最新的数据(分页是后台做的) $.alarmData.emergeListPage.param.level = urlValue;//传递的参数 $.buslongAjax({//项目封装的ajax方法,可以用ajax即可 url:$.alarmData.emergeListPage.url, data:$.alarmData.emergeListPage.param, success : function(data) { $("#emergeBody").setAllValue(data);//封装的方法,可忽略 var pageCount = Math.ceil(Number(data.count)/Number(pageSize));//页数总页:data.count后台传递的总条数/每页显示的数据           //判断是否有数据 if(data.ReporterStatus.length != 0 && startLimit <= pageCount){//有数据 $("#emergeList").html("");//添加之前先清空内容 $("#pageadd").text("上拉显示更多");//按钮更新内容(这就是我为什么隐藏mui自带的‘加载更多’) emergeDomApend("emergeList",data.ReporterStatus);//添加的数据 setTimeout(function() { mui("#emergeData").pullRefresh().enablePullupToRefresh();//启用上拉加载 }, 200);//200毫秒后 启动上拉加载 }else{//无数据 $("#pageadd").text("暂时没有更多数据"); setTimeout(function() { startLimit = 1; mui("#emergeData").pullRefresh().disablePullupToRefresh();//停止上拉加载 },100);//更新页码为 1 并停止上拉加载 } }, error: function(err){ console.log("请求失败!!!" + err); $("#pageadd").text("数据为空,请更新条件重试!"); return; }, }); }

上拉加载:emergeListUpData()

 

function emergeListUpData(){
//上拉加载   $.loadingShow();//可忽略   var urlValue = $.getUrlParam('urlvalue');   startLimit++;//每次加载 页码就增加一次   $.alarmData.emergeListPage.param.cuurrentpage = startLimit;//传给后台的数据,可忽略   $.alarmData.emergeListPage.param.level = urlValue;//传给后台的数据,可忽略 $.buslongAjax({ url:$.alarmData.emergeListPage.url, data:$.alarmData.emergeListPage.param, success : function(data) { var pageCount = Math.ceil(Number(data.count)/Number(pageSize));//总页数 if(data.ReporterStatus.length != 0 && startLimit <= pageCount){
//传入的参数 小于等于总页数,则加载新数据 emergeDomApend("emergeList",data.ReporterStatus);//加载数据 }else{ setTimeout(function() {
//否则停止上拉加载 $("#pageadd").text("暂时没有更多数据"); startLimit = 1; mui("#emergeData").pullRefresh().disablePullupToRefresh();//停止上拉加载 },100); } if(startLimit >2){ //当页码大于2时候,出现 ‘回到顶部’ 按钮 , 可根据自己情况设置(黄色部分是区分打包app的,不是打包app可删除忽略) $("#toTop").css({"display":"block"});             //在这里需要注意一下,因为我这边的项目app,是嵌套在app内部的手机端,算是手机端网页吧。不是独立打包发行的那种app,所以对于安卓和ios没有区分             //所以我直接以下,兼容安卓和ios系统:
                 document.getElementById('emergeData').addEventListener('scroll', function() {                              if (mui('#emergeData').pullRefresh().y <= window.innerHeight * (-1) && scrollToTopBox.classList.contains('hide')){                                   scrollToTopBox.classList.remove('hide');}                               else if (mui('#emergeData').pullRefresh().y > window.innerHeight * (-1) && !scrollToTopBox.classList.contains('hide')){                                   scrollToTopBox.classList.add('hide');} });             //如果是打包app,则需要区分,以下:Android上监听原生滚动,iOS上监听div滚动,上拉超过一屏后显示按钮,否则隐藏
          if (mui.os.android) {//打包app 可解决兼容性问题             window.addEventListener('scroll', function(e) {               if (window.pageYOffset <= window.innerHeight && scrollToTopBox.classList.contains('hide')){ scrollToTopBox.classList.add('hide');}                else if (window.pageYOffset > window.innerHeight && !scrollToTopBox.classList.contains('hide')){                scrollToTopBox.classList.remove('hide');} });           } else {
              document.getElementById('emergeData').addEventListener('scroll', function() {               if (mui('#emergeData').pullRefresh().y <= window.innerHeight * (-1) && scrollToTopBox.classList.contains('hide')){                 scrollToTopBox.classList.remove('hide');               } else if (mui('#emergeData').pullRefresh().y > window.innerHeight * (-1) && !scrollToTopBox.classList.contains('hide')){                 scrollToTopBox.classList.add('hide');} });           }           var scrollToTopBox = document.getElementById('toTop'); //返回按钮tap           scrollToTopBox.addEventListener('tap', function(e) { e.stopPropagation(); mui("#emergeData").pullRefresh().scrollTo(0, 0, 1000);//滚动到顶部 });         }else{           $("#toTop").css({"display":"none"});          }       },      error: function(XMLHttpRequest, textStatus, errorThrown){         console.log("请求失败!!!" + textStatus,errorThrown);         $("#pageadd").text("数据为空,请更新条件重试!");         return;       },     }); }

emmm......录了视频,但是好像不能上传

 

emmm...这个是使劲儿下拉的。。。算啦,就不贴视频和更多图片啦

总之,mui的上拉下拉还是挺好用的。。但是缺陷也有,坑也比较多,也百度了很多资料,em..慢慢一步步走吧。

 仅作记录,希望越来越好!。

 

转载于:https://www.cnblogs.com/moutudou/p/10174190.html

你可能感兴趣的文章
一种高效的序列化方式——MessagePack
查看>>
2019年春季学期第四周作业
查看>>
2019春第十周作业
查看>>
解决ThinkPHP关闭调试模式时报错的问题汇总
查看>>
【APT】SqlServer游标使用
查看>>
关于ExecuteNonQuery()返回值为-1
查看>>
Firefox修復QQ快速登錄
查看>>
PAT——1060. 爱丁顿数
查看>>
分布式技术追踪 2017年第二十期
查看>>
git添加公钥后报错sign_and_send_pubkey: signing failed: agent refused operation的解决办法
查看>>
Linux环境变量永久设置方法(zsh)
查看>>
MVC4.0 利用IActionFilter实现简单的后台操作日志功能
查看>>
脑袋卡在窗子里
查看>>
ruby 中文字符to_json后乱码(unicode)
查看>>
《大道至简》第六章读后感
查看>>
codeforce 597C-Subsequences(dp+树状数组)
查看>>
[android](学习笔记6)为应用程序添加对话框(1)
查看>>
windows下mongodb安装与使用
查看>>
rotate the clock
查看>>
bugku 变量
查看>>