MUI“下拉刷新、上拉加载、上拉下拉整合”代码实例

MUI下拉刷新

为实现下拉刷新功能,大多H5框架都是通过DIV模拟下拉回弹动画,在低端android手机上,DIV动画经常出现卡顿现象(特别是图文列表的情况); 通过双webview解决这个DIV的拖动流畅度问题;拖动时,拖动的不是div,而是一个完整的webview(子webview),回弹动画使用原生动画;在iOS平台,H5的动画已经比较流畅,故依然使用H5方案。两个平台实现虽有差异,但经过封装,可使用一套代码实现下拉刷新。

 

第一步:创建子页面,因为拖动的其实是个子页面的整体

mui.init({ 
subpages:[{ 
url:pullrefresh-subpage-url,//下拉刷新内容页面地址 
id:pullrefresh-subpage-id,//内容页面标志
styles:{ top:subpage-top-position,//内容页面顶部位置,需根据实际页面布局计算,若使用标准mui导航,顶部默认为48px; .....//其它参数定义 
} 
}] 
});

 

第二步:内容页面需按照如下DOM结构构建

<!--下拉刷新容器-->
<div id="pullrefresh" class="mui-content mui-scroll-wrapper">
<div class="mui-scroll">
<!--数据列表-->
<ul class="mui-table-view mui-table-view-chevron">
<li class="mui-table-view-cell">1</li>
</ul>
</div>
</div> 

 

 

第三步:通过mui.init方法中pullRefresh参数配置下拉刷新各项参数

mui.init({ 
pullRefresh : { 
container:"#pullrefresh",//下拉刷新容器标识,querySelector能定位的css选择器均可,比如:id、.class等 
down : {
contentdown : "下拉可以刷新",//可选,在下拉可刷新状态时,下拉刷新控件上显示的标题内容 
contentover : "释放立即刷新",//可选,在释放可刷新状态时,下拉刷新控件上显示的标题内容 
contentrefresh : "正在刷新...",//可选,正在刷新状态时,下拉刷新控件上显示的标题内容 
callback : fn //必选,刷新函数,根据具体业务来编写,比如通过ajax从服务器获取新数据;
} } 
});

 

第四步:设置执行函数

function fn() {
//业务逻辑代码,比如通过ajax从服务器获取新数据; ...... //注意,加载完新数据后,必须执行如下代码,注意:若为ajax请求,则需将如下代码放置在处理完ajax响应数据之后 
mui('#pullrefresh').pullRefresh().endPulldownToRefresh(); //这行代码会隐藏掉 正在加载... 容器
}

 

MUI上拉加载

第一步,第二步 和“下拉刷新”的一样

 

第三步:通过mui.init方法中pullRefresh参数配置下拉刷新各项参数

mui.init({ 
pullRefresh : { 
container:"#pullrefresh",//待刷新区域标识,querySelector能定位的css选择器均可,比如:id、.class等 
up : { 
contentrefresh : "正在加载...",//可选,正在加载状态时,上拉加载控件上显示的标题内容 
contentnomore:'没有更多数据了',//可选,请求完毕若没有更多数据时显示的提醒内容; 
callback : fn //必选,刷新函数,根据具体业务来编写,比如通过ajax从服务器获取新数据; 
} 
} 
});

 

第四步:设置执行函数

function fn() { 
//业务逻辑代码,比如通过ajax从服务器获取新数据; ...... //注意,加载完新数据后,必须执行如下代码,true表示没有更多数据了,
//两个注意事项: 
//1、若为ajax请求,则需将如下代码放置在处理完ajax响应数据之后 
//2、注意this的作用域,若存在匿名函数,需将this复制后使用
var _this = this;
_this.endPullupToRefresh(true|false); 
}

 

MUI上拉下拉整合

第一步,第二步和“下拉刷新”一样

 

第三步:在mui.init()内同时设置上拉加载和下拉刷新

mui.init({
pullRefresh: {
container: '#pullrefresh',
down: {
contentdown : "下拉可以刷新",//可选,在下拉可刷新状态时,下拉刷新控件上显示的标题内容
contentover : "释放立即刷新",//可选,在释放可刷新状态时,下拉刷新控件上显示的标题内容
contentrefresh : "正在刷新...",//可选,正在刷新状态时,下拉刷新控件上显示的标题内容
callback: downFn // 下拉执行函数
},
up: {
contentrefresh: '正在加载...',
callback: upFn // 上拉执行函数
}
}
});

 

注意:给获取元素加onclick点击事件不行,需要加addEventListener自定义事件

MUI“下拉刷新、上拉加载、上拉下拉整合”

    A+
发布日期:2017年11月10日 17:25:19  所属分类:MUI
最后更新时间:2017-12-15 19:13:43
头像
  • ¥ 0.0元
  • 市场价:99.0元
  • ¥ 49.9元
  • 市场价:99.9元
  • ¥ 199.0元
  • 市场价:199.0元
  • ¥ 298.0元
  • 市场价:498.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  0   博主  0

  1. 头像 小野马 0

    ios中使用mui上拉加载,滑动不了。这是为什么?

    • 头像 前端来日可欺 0

      @小野马 你代码是否有问题?还有就是:是不是除了ios不能使用mui上拉加载,其它的手机系统都可以?还要想想是不是手机卡着了。