使用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 相关文章推荐
xml 与javascript结合的问题解决方法
Mar 24 Javascript
js浮动图片的动态效果
Jul 10 Javascript
简洁实用的BootStrap jQuery手风琴插件
Aug 31 Javascript
vue2.0开发实践总结之入门篇
Dec 06 Javascript
Vuex之理解state的用法实例
Apr 19 Javascript
vue中添加mp3音频文件的方法
Mar 02 Javascript
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
Aug 10 Javascript
解决vue.js 数据渲染成功仍报错的问题
Aug 25 Javascript
Vue实现随机验证码功能
Dec 29 Vue.js
JS实现点击掉落特效
Jan 29 Javascript
LayUI+Shiro实现动态菜单并记住菜单收展的示例
May 06 Javascript
教你部署vue项目到docker
Apr 05 Vue.js
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
wiki-shan写的php在线加密的解密程序
2008/09/07 PHP
php 目录与文件处理-郑阿奇(续)
2011/07/04 PHP
smarty自定义函数用法示例
2016/05/20 PHP
EXTJS FORM HIDDEN TEXTFIELD 赋值 使用value不好用的问题
2011/04/16 Javascript
浅析LigerUi开发中谨慎载入common.css文件
2013/07/09 Javascript
jQuery实现图片放大预览实现原理及代码
2013/09/12 Javascript
页面刷新时记住滚动条的位置jquery代码
2014/06/17 Javascript
JavaScript中的substr()方法使用详解
2015/06/06 Javascript
快速学习JavaScript的6个思维技巧
2015/10/13 Javascript
基于jQuery实现拖拽图标到回收站并删除功能
2015/11/25 Javascript
功能强大的jquery.validate表单验证插件
2016/11/07 Javascript
Vue.js原理分析之observer模块详解
2017/02/17 Javascript
JavaScript标准对象_动力节点Java学院整理
2017/06/27 Javascript
从零开始最小实现react服务器渲染详解
2018/01/26 Javascript
vue将对象新增的属性添加到检测序列的方法
2018/02/24 Javascript
vue axios请求超时的正确处理方法
2018/04/02 Javascript
js实现购物车功能
2018/06/12 Javascript
Puppet的一些技巧
2018/09/17 Javascript
JS数组求和的常用方法总结【5种方法】
2019/01/14 Javascript
vue实现跳转接口push 转场动画示例
2019/11/01 Javascript
[01:32]dota2拉比克至宝(222)
2018/12/20 DOTA
python实现批量修改图片格式和尺寸
2018/06/07 Python
基于PyQt4和PySide实现输入对话框效果
2019/02/27 Python
python实现雪花飘落效果实例讲解
2019/06/18 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
2020/03/10 Python
英国在线药房和在线医生:LloydsPharmacy
2019/10/21 全球购物
面向对象编程OOP的优点
2013/01/22 面试题
求职简历中个人的自我评价
2013/12/01 职场文书
应届大专毕业生自我鉴定
2014/04/08 职场文书
会计求职信范文
2014/05/24 职场文书
公安民警正风肃纪剖析材料
2014/10/10 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书
利用ajax+php实现商品价格计算
2021/03/31 PHP
golang 接口嵌套实现复用的操作
2021/04/29 Golang
详解redis分布式锁的这些坑
2021/05/19 Redis
JS 4个超级实用的小技巧 提升开发效率
2021/10/05 Javascript