使用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 相关文章推荐
Jquery 获取表单text,areatext,radio,checkbox,select值的代码
Nov 12 Javascript
js监听输入框值的即时变化onpropertychange、oninput
Jul 13 Javascript
javascript获取元素CSS样式代码示例
Nov 28 Javascript
使用jquery修改表单的提交地址基本思路
Jun 04 Javascript
JavaScript实现复制内容到粘贴板代码
Mar 31 Javascript
Bootstrap框架动态生成Web页面文章内目录的方法
May 12 Javascript
js两种拼接字符串的简单方法(必看)
Sep 02 Javascript
vue v-model动态生成详解
Jun 30 Javascript
js时间戳转yyyy-MM-dd HH-mm-ss工具类详解
Apr 30 Javascript
JavaScript变量基本使用方法实例分析
Nov 15 Javascript
微信小程序实现上拉加载功能
Nov 20 Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
Sep 07 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入门速成(2)
2006/10/09 PHP
PHP中调用ASP.NET的WebService的代码
2011/04/22 PHP
基于Linux调试工具strace与gdb的常用命令总结
2013/06/03 PHP
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
2014/06/12 PHP
php实现根据词频生成tag云的方法
2015/04/17 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
2016/07/13 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
PHP实现微信申请退款功能
2018/10/01 PHP
Js 去掉字符串中的空格(实现代码)
2013/11/19 Javascript
js中生成map对象的方法
2014/01/09 Javascript
angularjs实现与服务器交互分享
2014/06/24 Javascript
使用jquery.validate自定义方法实现&quot;手机号码或者固话至少填写一个&quot;的逻辑验证
2014/09/01 Javascript
js时间戳转为日期格式的方法
2015/12/28 Javascript
javascript创建含数字字母的随机字符串方法总结
2016/08/01 Javascript
Vue2学习笔记之请求数据交互vue-resource
2017/02/23 Javascript
详解nodejs爬虫程序解决gbk等中文编码问题
2017/04/06 NodeJs
浅析vue插槽和作用域插槽的理解
2019/04/22 Javascript
JS使用new操作符创建对象的方法分析
2019/05/30 Javascript
JS一次前端面试经历记录
2020/03/19 Javascript
JS call()及apply()方法使用实例汇总
2020/07/11 Javascript
jQuery实现可以计算进制转换的计算器
2020/10/19 jQuery
[02:10]2018DOTA2亚洲邀请赛赛前采访-Liquid
2018/04/03 DOTA
python实现的一个p2p文件传输实例
2014/06/04 Python
python字典DICT类型合并详解
2017/08/17 Python
Python使用Turtle模块绘制五星红旗代码示例
2017/12/11 Python
python爬虫爬取某站上海租房图片
2018/02/04 Python
Python中的CSV文件使用&quot;with&quot;语句的方式详解
2018/10/16 Python
Python脚本完成post接口测试的实例
2018/12/17 Python
Python程序打包工具py2exe和PyInstaller详解
2019/06/28 Python
tensorflow2.0保存和恢复模型3种方法
2020/02/03 Python
python 实现仿微信聊天时间格式化显示的代码
2020/04/17 Python
Fairyseason:为个人和批发商提供女装和配件
2017/03/01 全球购物
瑜伽服装品牌:露露柠檬(lululemon athletica)
2017/06/04 全球购物
2014年后勤工作总结范文
2014/12/16 职场文书
党员理论学习心得体会
2016/01/21 职场文书
python spilt()分隔字符串的实现示例
2021/05/21 Python