使用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 相关文章推荐
javascript实现的鼠标链接提示效果生成器代码
Jun 28 Javascript
编程语言JavaScript简介
Oct 16 Javascript
利用JavaScript的AngularJS库制作电子名片的方法
Jun 18 Javascript
JavaScript和JQuery的鼠标mouse事件冒泡处理
Jun 19 Javascript
jquery ztree实现树的搜索功能
Feb 25 Javascript
jQuery实现放大镜效果实例代码
Mar 17 Javascript
javascript实现获取图片大小及图片等比缩放的方法
Nov 24 Javascript
JavaScript自定义函数实现查找两个字符串最长公共子串的方法
Nov 24 Javascript
bootstrap的常用组件和栅格式布局详解
May 02 Javascript
详解JS数组Reduce()方法详解及高级技巧
Aug 18 Javascript
JS面试题中深拷贝的实现讲解
May 07 Javascript
JS中箭头函数与this的写法和理解
Jan 14 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程序的php代码
2008/04/07 PHP
php实现水仙花数示例分享
2014/04/03 PHP
yii添删改查实例
2015/11/16 PHP
ArrayList类(增强版)
2007/04/04 Javascript
prototype框架中美元符号$用法分析
2016/01/22 Javascript
JavaScript实现斗地主游戏的思路
2016/02/29 Javascript
微信小程序之仿微信漂流瓶实例
2016/12/09 Javascript
Bootstrap源码解读导航条(7)
2016/12/23 Javascript
js实现增加数字显示的环形进度条效果
2017/02/05 Javascript
js实现无缝滚动图
2017/02/22 Javascript
vue插件vue-resource的使用笔记(小结)
2017/08/04 Javascript
浅谈angularJS的$watch失效问题的解决方案
2017/08/11 Javascript
基于Vue实现后台系统权限控制的示例代码
2017/08/29 Javascript
vue3.0 CLI - 2.1 -  component 组件入门教程
2018/09/14 Javascript
koa-router路由参数和前端路由的结合详解
2019/05/19 Javascript
对vue中的事件穿透与禁止穿透实例详解
2019/10/28 Javascript
python实现将英文单词表示的数字转换成阿拉伯数字的方法
2015/07/02 Python
Python语言快速上手学习方法
2018/12/14 Python
Python 运行 shell 获取输出结果的实例
2019/01/07 Python
python 字段拆分详解
2019/12/17 Python
tensorflow之tf.record实现存浮点数数组
2020/02/17 Python
Python使用configparser读取ini配置文件
2020/05/25 Python
CSS3用@font-face实现自定义英文字体
2013/09/23 HTML / CSS
阿联酋电子产品购物网站:Menakart
2017/09/15 全球购物
戴尔美国官方折扣店:Dell Outlet
2018/02/13 全球购物
Lookfantastic希腊官网:英国知名美妆购物网站
2018/09/15 全球购物
我有一个char * 型指针正巧指向一些int 型变量, 我想跳过它们。 为什么如下的代码((int *)p)++; 不行?
2013/05/09 面试题
运动会解说词200字
2014/02/06 职场文书
上课迟到检讨书
2014/02/19 职场文书
五四青年节的活动方案
2014/08/20 职场文书
读群众路线的心得体会
2014/09/03 职场文书
党风廉正建设个人工作总结
2015/03/06 职场文书
开场白怎么写
2015/06/01 职场文书
Python初识逻辑与if语句及用法大全
2021/08/07 Python
Python OpenCV超详细讲解读取图像视频和网络摄像头
2022/04/02 Python
让JavaScript代码更加精简的方法技巧
2022/06/01 Javascript