使用MUI框架模拟手机端的下拉刷新和上拉加载功能


Posted in Javascript onSeptember 04, 2017

mui框架基于htm5plus的XMLHttpRequest,封装了常用的Ajax函数,支持GET、POST请求方式,支持返回json、xml、html、text、script数据类型; 本着极简的设计原则,mui提供了mui.ajax方法,并在mui.ajax方法基础上,进一步简化出最常用的mui.get()、mui.getJSON()、mui.post()三个方法。

套用mui官方文档的一句话:“开发者只需关心业务逻辑,实现加载更多数据即可”。真的是不错的框架。

想更多的了解这个框架:http://dev.dcloud.net.cn/mui/

那么如何实现下拉刷新,上拉加载的功能呢?

首先需要一个容器:

<!--下拉刷新容器-->
<div id="refreshContainer" class="mui-content mui-scroll-wrapper">
<div class="mui-scroll">

<!--数据列表-->


<ul id="testUl" class="mui-table-view mui-table-view-chevron"></ul>

</div>
</div>

然后进行初始化操作,通过mui.init方法中pullRefresh参数配置上拉加载各项参数:

mui.init({
 pullRefresh : {
 container:refreshContainer,//待刷新区域标识,querySelector能定位的css选择器均可,比如:id、.class等
 up : {
 height:50,//可选.默认50.触发上拉加载拖动距离
 auto:true,//可选,默认false.自动上拉加载一次
 contentrefresh : "正在加载...",//可选,正在加载状态时,上拉加载控件上显示的标题内容
 contentnomore:'没有更多数据了',//可选,请求完毕若没有更多数据时显示的提醒内容;
 callback :pullfresh-function //必选,刷新函数,根据具体业务来编写,比如通过ajax从服务器获取新数据;
 }
 }
});

这里重点关注callback参数项,为必选内容,里边写刷新函数,根据具体的业务来写,在实际项目中,通常是通过ajax从服务器获取数据,然后进行html的动态拼接,形成数据项。

下面举一个很简单的例子:(实现上拉加载的功能)

容器:

<!--下拉刷新容器-->
 <div id="refreshContainer" class="mui-content mui-scroll-wrapper">
<div class="mui-scroll">

<!--数据列表-->
 

<ul id="testUl" class="mui-table-view mui-table-view-chevron"></ul>

</div>
 </div>

一会要将数据放到 id=“testUl”的ul标签下,id当然随便取

调用mui.init方法:

<script type="text/javascript">
 mui.init({
  pullRefresh : {
   container:refreshContainer,//待刷新区域标识,querySelector能定位的css选择器均可,比如:id、.class等
   up : {
    height:50,//可选.默认50.触发上拉加载拖动距离
    auto:true,//可选,默认false.自动上拉加载一次
    contentrefresh : "正在加载...",//可选,正在加载状态时,上拉加载控件上显示的标题内容
    contentnomore:'没有更多数据了',//可选,请求完毕若没有更多数据时显示的提醒内容;
    callback: function () {//必选,刷新函数,根据具体业务来编写,比如通过ajax从服务器获取新数据;
     /*每次加载动态的添加一个li*/
     $("#testUl").append($("<li>" + new Date() + "</li>"));
     this.endPullupToRefresh(false);
    } 
    }
    }
    });
</script>

callback参数中,写的是加载函数,每次加载,动态生成一个li标签,用当前时间作为测试数据,贴到id=testUl的ul标签之下。

这里注意callback中的function最后的 this.endPullupToRefresh(false); 表示结束加载,参数可选true或false,true表示结束加载,false继续加载,在实际项目应用中,通常要根据服务器回传的数据量做一下判断。

over!! 这样每次上拉,都会加载一条当前的时间。

总结

以上所述是小编给大家介绍的使用MUI框架模拟手机端的下拉刷新和上拉加载功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
In Javascript Class, how to call the prototype method.(three method)
Jan 09 Javascript
Tinymce+jQuery.Validation使用产生的BUG
Mar 29 Javascript
关于js中alert弹出窗口文本换行问题简单详细说明
Dec 11 Javascript
Extjs Gird 支持中文拼音排序实现代码
Apr 15 Javascript
jquery获取css中的选择器(实例讲解)
Dec 02 Javascript
javascript拖拽上传类库DropzoneJS使用方法
Dec 05 Javascript
JS实现的自定义右键菜单实例二则
Sep 01 Javascript
jquery对dom节点的操作【推荐】
Apr 15 Javascript
jQuery.form插件的使用及跨域异步上传文件
Apr 27 Javascript
react项目实践之webpack-dev-serve
Sep 14 Javascript
jquery的$().each和$.each的区别
Jan 18 jQuery
Vue打包部署到Nginx时,css样式不生效的解决方式
Aug 03 Javascript
JS图片延迟加载插件LazyImgv1.0用法分析【附demo源码下载】
Sep 04 #Javascript
React教程之Props验证的具体用法(Props Validation)
Sep 04 #Javascript
VueJS组件之间通过props交互及验证的方式
Sep 04 #Javascript
vue中component组件的props使用详解
Sep 04 #Javascript
React-Native中props具体使用详解
Sep 04 #Javascript
用最简单的方法判断JavaScript中this的指向(推荐)
Sep 04 #Javascript
JS与HTML结合实现流程进度展示条思路详解
Sep 03 #Javascript
You might like
PHP把空格、换行符、中文逗号等替换成英文逗号的正则表达式
2014/05/04 PHP
php获取根域名方法汇总
2014/10/28 PHP
详解PHP原生DOM对象操作XML的方法
2016/10/17 PHP
接收键盘指令的脚本
2006/06/26 Javascript
css把超出的部分显示为省略号的方法兼容火狐
2008/07/23 Javascript
利用浏览器全屏api实现js全屏
2014/01/16 Javascript
JS获取iframe中longdesc属性的方法
2015/04/01 Javascript
JavaScript中的some()方法使用详解
2015/06/09 Javascript
JavaScript 2048 游戏实例代码(简单易懂)
2016/03/25 Javascript
详解Javascript ES6中的箭头函数(Arrow Functions)
2016/08/24 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
2017/01/29 Javascript
vue中将网页打印成pdf实例代码
2017/06/15 Javascript
微信小程序实现拖拽 image 触摸事件监听的实例
2017/08/17 Javascript
解决vue2.0动态绑定图片src属性值初始化时报错的问题
2018/03/14 Javascript
Mpvue中使用Vant Weapp组件库的方法步骤
2019/05/16 Javascript
layui添加动态菜单与选项卡
2019/07/26 Javascript
微信小程序中为什么使用var that=this
2019/08/27 Javascript
在vue中实现禁止回退上一步,路由不存历史记录
2020/07/22 Javascript
[40:50]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第四场
2014/05/24 DOTA
python使用reportlab画图示例(含中文汉字)
2013/12/03 Python
解决python3在anaconda下安装caffe失败的问题
2017/06/15 Python
深入理解Python中range和xrange的区别
2017/11/26 Python
python实现关闭第三方窗口的方法
2019/06/28 Python
获取Pytorch中间某一层权重或者特征的例子
2019/08/17 Python
pytorch动态网络以及权重共享实例
2020/01/06 Python
解决HTML5手机端页面缩放的问题
2017/10/27 HTML / CSS
正宗的日本零食和糖果订阅盒:Bokksu
2019/11/21 全球购物
倡议书的写法
2014/08/30 职场文书
大学毕业典礼演讲稿
2014/09/09 职场文书
银行职员工作失误检讨书
2014/10/14 职场文书
建议书范文
2015/02/05 职场文书
大学生军训感言
2015/08/01 职场文书
2015教师个人师德工作总结
2015/10/23 职场文书
【海涛dota解说】海涛小满开黑4v5被破两路翻盘潮汐第一视角解说
2022/04/01 DOTA
Python使用华为API为图像设置多个锚点标签
2022/04/12 Python
Django数据库(SQlite)基本入门使用教程
2022/07/07 Python