使用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题目,重写函数让其无限相加
Feb 15 Javascript
JavaScript 函数replace深入了解
Mar 14 Javascript
js语法学习之判断一个对象是否为数组
May 13 Javascript
JavaScript简单实现鼠标移动切换图片的方法
Feb 23 Javascript
详解jQuery中的empty、remove和detach
Apr 11 Javascript
JavaScript String 对象常用方法详解
May 13 Javascript
jQuery悬停文字提示框插件jquery.tooltipster.js用法示例【附demo源码下载】
Jul 19 Javascript
图文详解JavaScript的原型对象及原型链
Aug 02 Javascript
微信小程序 教程之注册页面
Oct 17 Javascript
通过扫描二维码打开app的实现代码
Nov 10 Javascript
解决vue项目使用font-awesome,build后路径的问题
Sep 01 Javascript
JS中数据结构与算法---排序算法(Sort Algorithm)实例详解
Jun 17 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实现多服务器session共享之NFS共享的方法
2007/03/16 PHP
PHP判断JSON对象是否存在的方法(推荐)
2016/07/06 PHP
详解PHP队列的实现
2019/03/14 PHP
11款基于Javascript的文件管理器
2009/10/25 Javascript
DIV外区域Click后关闭DIV的实现代码
2011/12/21 Javascript
jquery二级导航内容均分的原理及实现
2013/08/13 Javascript
Javascript快速排序算法详解
2014/12/03 Javascript
分享一道关于闭包、bind和this的面试题
2017/02/20 Javascript
原生js轮播特效
2017/05/18 Javascript
Node.js搭建WEB服务器的示例代码
2018/08/15 Javascript
微信小程序下拉刷新PullDownRefresh的使用方法
2018/11/29 Javascript
JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解
2018/12/12 Javascript
JavaScript之实现一个简单的Vue示例
2019/01/17 Javascript
手把手带你封装一个vue component第三方库
2019/02/14 Javascript
python中cPickle用法例子分享
2014/01/03 Python
Python的print用法示例
2014/02/11 Python
python链接oracle数据库以及数据库的增删改查实例
2018/01/30 Python
python实现H2O中的随机森林算法介绍及其项目实战
2019/08/29 Python
python生成器推导式用法简单示例
2019/10/08 Python
pandas按行按列遍历Dataframe的几种方式
2019/10/23 Python
python实现图片插入文字
2019/11/26 Python
Python遍历字典方式就实例详解
2019/12/28 Python
python递归调用中的坑:打印有值, 返回却None
2020/03/16 Python
Windows下Anaconda和PyCharm的安装与使用详解
2020/04/23 Python
OpenCV 之按位运算举例解析
2020/06/19 Python
通过实例解析python subprocess模块原理及用法
2020/10/10 Python
法国时尚品牌乐都特瑞士站:La Redoute瑞士
2016/09/05 全球购物
美国睫毛、眉毛精华液领导品牌:RevitaLash Cosmetics
2018/03/26 全球购物
哈利波特商店:Harry Potter Shop
2018/11/30 全球购物
北京银河万佳Java面试题
2012/03/21 面试题
学校节能减排倡议书
2014/05/16 职场文书
旅游活动总结
2014/08/27 职场文书
导游词之海南-南湾猴岛
2019/10/12 职场文书
JavaScript+HTML实现学生信息管理系统
2021/04/20 Javascript
sql server 累计求和实现代码
2022/02/28 SQL Server
「回转企鹅罐」10周年纪念展「輪るピングドラム展」海报公开
2022/03/22 日漫