head部分(引入mui)

<link href="./resources/css/mui.min.css" rel="stylesheet" />
<script src="./resources/js/mui.min.js" type="text/javascript" charset="utf-8"></script>
<script src="./resources/js/jquery-1.9.1.min.js" type="text/javascript" charset="utf-8"></script>

html部分(scroll容器)

<div class="mui-off-canvas-wrap mui-draggable mui-slide-in emergeBody">
<div class="mui-inner-wrap">
<!-- 主页面内容容器 -->
<div class="mui-scroll-wrapper" id='emergeData'>
<div class="mui-scroll">
<!--页面主体开始-->
<div class="mui-page">
<div id='emergeList'><!-- 告警列表页 --></div>
<div id="pageadd" class="mui-button-row mui-table-view button_box">上拉显示更多</div>
</div>
</div>
</div>
</div>
</div>

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..慢慢一步步走吧。

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

mui的上拉下载和下拉刷新的更多相关文章

  1. mui scroll和上拉加载/下拉刷新

    mui中 scroll和上拉加载/下拉刷新同时存在会出现两个滚动条 把/*   */ /* //mui页面鼠标拖动代码: mui('.mui-scroll-wrapper').scroll({ dec ...

  2. mui点击加载,下拉刷新,上下整合代码

    mui点击加载,下拉刷新,上下整合代码 mui的是上拉加载,但是老大说要做成点击加载,所以就改了一些 代码应该是有些问题的,测到了大家就自己改下. 首先要说明的是,有下拉刷新的页面一定要是双webvi ...

  3. Vue mint ui用在消息页面上拉加载下拉刷新loadmore 标记

    之前总结过一个页面存在多个下拉加载的处理方式,今天再来说一下在消息页面的上拉加载和下拉刷新,基本上每个app都会有消息页面,会遇到这个需求 需求:每次加载十条数据,上拉加载下拉刷新,并且没有点击查看过 ...

  4. 上拉加载下拉刷新控件WaterRefreshLoadMoreView

    上拉加载下拉刷新控件WaterRefreshLoadMoreView 效果: 源码: // // SRSlimeView // @author SR // Modified by JunHan on ...

  5. RecyclerView 上拉加载下拉刷新

    RecyclerView 上拉加载下拉刷新 <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/teach_s ...

  6. APICloud上啦加载下拉刷新模块

    apicloud有自带的上啦加载下拉刷新,当让也可以用第三方或者在模块库里面找一个使用 一.下拉刷新,一下代码写在 apiready = function (){} 里面 apiready = fun ...

  7. 微信小程序上拉加载下拉刷新

    微信小程序实现上拉加载下拉刷新 使用小程序默认提供方法. (1). 在xxx.json 中开启下拉刷新,需要设置backgroundColor,或者是backgroundTextStyle ,因为加载 ...

  8. 【Arduino学习笔记06】上拉电阻和下拉电阻

    为什么要用上拉电阻和下拉电阻?--避免输入引脚处于"悬空"状态 下图是一个没有使用上拉电阻/下拉电阻的电路图: 在按键没有按下时,要读取的输入引脚没有连接到任何东西,这种状态就称为 ...

  9. 类似UC天气下拉和微信下拉眼睛头部弹入淡出UI交互效果(开源项目)。

    Android-PullLayout是github上的一个第三方开源项目,该项目主页是:https://github.com/BlueMor/Android-PullLayout  原作者项目意图实现 ...

随机推荐

  1. 人工智能: 自动寻路算法实现(三、A*算法)

    博客转载自:https://blog.csdn.net/kwame211/article/details/78139506 本篇文章是机器人自动寻路算法实现的第三章.我们要讨论的是一个在一个M×N的格 ...

  2. SPOJ-TTM To the moon

    一句话题意:写一个支持区间修改,区间求和的可持久化数据结构. 考虑使用主席树,然而,区间修改怎么办? 似乎有标记永久化的方法. 对于线段树上完全覆盖标记产生贡献的区间,我们直接打上一个$tag$,而对 ...

  3. JavaScript学习系列6 -- JavaScript中的垃圾回收(内存释放)

    程序开发中,涉及到的内存生命周期基本是一样的,分为以下三步 1. 分配需要的内存 2. 使用分配到的内存 3. 释放其内存    ----什么时候释放内存,以及需要释放哪些变量的内存, 就是垃圾回收机 ...

  4. Python短小精悍的Orator基本使用技巧

    基本使用 配置 设置数据库配置参数,创建一个DatabaseManager实例. from orator import DatabaseManager config = { 'mysql': { 'd ...

  5. 基于FormsAuthentication的用户、角色身份认证(转)

    一般情况下,在我们做访问权限管理的时候,会把用户的正确登录后的基本信息保存在Session中,以后用户每次请求页面或接口数据的时候,拿到 Session中存储的用户基本信息,查看比较他有没有登录和能否 ...

  6. 交叉编译Spice-gtk

    Fedora环境 编译环境 操作系统: 64位 Fedora23 下载源文件 spice-gtk.spice-protocol 安装依赖 $ sudo yum install -y dh-autore ...

  7. window 环境下在虚拟机上安装php环境

    转发:https://www.cnblogs.com/orangegem/p/7191659.html 安装linux工具 :https://blog.csdn.net/z15732621582/ar ...

  8. Servlet方法之service()

    1.service一定要用吗?作用是什么?是不是在程序开始运行时,自动装载执行的系统方法(类似于main)? Service是类GenericServlet中最重要的方法,每次客户向服务器发出请求时, ...

  9. 【转】C#里partial关键字的作用

    源地址:http://www.cnblogs.com/OpenCoder/archive/2009/10/27/1590328.html

  10. [Xcode 实际操作]五、使用表格-(2)设置UITableView单元格高度

    目录:[Swift]Xcode实际操作 本文将演示如何制作一个自定义行高的表格视图 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import UIKit //首 ...