还在用mui默认的pullRefresh插件?赶紧来看看我的future-pullrefresh.js

做移动端开发的人很多人都认识mui框架。但是mui框架的很多功能的封装其实还是存在很多瑕疵的。

扫地僧最为有感触的便是mui的下拉插件,是真的难用,不是一般的难用。

于是,我基于mui.js和阿里巴巴的图标库封装了一个历史上最好用的下拉插件。

先罗列下我封装的future-pullrefresh.js插件的优点:

1、0成本上手,简单api

2、已经在大公司项目应用了,经过了10000多用户的考验,无bug。

最后直接讲下怎么用吧:

1、插件截图:

2、使用:

用这个插件的同学,默认你们已经会用mui的下拉插件了。

使用方法,上述截图已经详细说明,再不懂的同学,直接看插件里头又详细解释,再不懂的qq找我,邮箱:3263138624@qq.com,实在不想动的,直接看下面我给的使用案例吧。

案例:

1、引入css

(iconfont系列css是阿里巴巴的图标库里下载下来的:https://www.iconfont.cn/

		<link href="../../css/mui.css" rel="stylesheet" />
		<link rel="stylesheet" href="../../css/iconfont.css" />
		<link rel="stylesheet" href="../../css/icons-extra.css" />

2、引入js

<script src="../../js/mui.js "></script>
<script type="text/javascript" src="../../js/plugin/future/future-pullrefresh.js"></script>

3、编写html代码:

   <div id="pullrefresh" class="mui-content mui-scroll-wrapper">
			<div class="mui-scroll">
				<div id="my-container">
				</div>
			</div>
	</div>

4、业务js

这边只讲解最简单future-pullrefresh.js的用法,但是也就只要这么用就满足99.99%的场景了

mui.init({
    pullRefresh: futurePullRresh.init({id:"pullrefresh"}),
    swipeBack: true //启用右滑关闭功能
});

// 实现下拉刷新的接口
futurePullRresh.pulldownRefresh = function() {
    // 下拉刷新,重新设置从第一页开始
	pageNo = 1;
    // 清空容器数据
	document.getElementById("my-container").innerHTML = ""; 
    // 重新搜索捞取数据
	search();
}

// 实现上拉加载接口
futurePullRresh.pullupRefresh = function () {
	search();
}

var pageNo = 1;
var pageSize = 10;
/**
 * 搜索
 */
function search() {
	// 请求参数
	var queryData = {
			pageNo:pageNo,
			pageSize:pageSize
	};
	
	mui.ajax({
		url: "xxx",
		type: 'get',
		data: queryData,
		dataType: 'json',
		timeout: 10000,
		success: function(result) {
			plus.nativeUI.closeWaiting();
			
			var rows = result.data.row;
			// 设置数据加载情况,其中第一个参数表示捞回来的结果的数量,第二个参数表示当前的页面(必须从1开始),第三个参数表示每页的条数
			futurePullRresh.setHasMoreData(rows.length,pageNo,pageSize);
			
			// 页数自加1
			pageNo++;
			
			// 根据数据生成要渲染的html
			var html = fillOneNoteList(rows);
			document.getElementById("my-container").innerHTML = document.getElementById("my-container").innerHTML + html;
		},
		error: function(xhr, type, errorThrown) {
			plus.nativeUI.closeWaiting();
			mui.toast("开小差了!");
		},
		complete: function() {
			plus.nativeUI.closeWaiting();
		}
	});
}

至此,一个简单的demo就完成了。

总结:

业务代码里头很多人可能觉得代码有点多,不想看,好吧,谁叫人人帅心善呢?再总结下:

其实只要关注三个内容:

1、实现接口:futurePullRresh.pulldownRefresh

2、实现接口:futurePullRresh.pullupRefresh

3、设置数据状态:futurePullRresh.setHasMoreData

附件链接

1、future-pullrefresh.js插件下载

2、配套的mui.js文件下载

 

 

 

 

 

 

这是一款基于mui框架制作的选项卡切换和下拉刷新加载数据列表代码,手机移动端选项卡切换插件,触屏滑动下拉刷新代码。 js代码 [removed][removed] [removed][removed] [removed][removed] [removed] mui.init(); (function($) { //阻尼系数 var deceleration = mui.os.ios?0.003:0.0009; $('.mui-scroll-wrapper').scroll({ bounce: false, indicators: true, //是否显示滚动条 deceleration:deceleration }); $.ready(function() { //循环初始化所有下拉刷新,上拉加载。 $.each(document.querySelectorAll('.mui-slider-group .mui-scroll'), function(index, pullRefreshEl) { $(pullRefreshEl).pullToRefresh({ down: { callback: function() { var self = this; setTimeout(function() { var ul = self.element.querySelector('.mui-table-view'); ul.insertBefore(createFragment(ul, index, 10, true), ul.firstChild); self.endPullDownToRefresh(); }, 1000); } }, up: { callback: function() { var self = this; setTimeout(function() { var ul = self.element.querySelector('.mui-table-view'); ul.appendChild(createFragment(ul, index, 5)); self.endPullUpToRefresh(); }, 1000); } } }); }); var createFragment = function(ul, index, count, reverse) { var length = ul.querySelectorAll('li').length; var fragment = document.createDocumentFragment(); var li; for (var i = 0; i < count; i ) { li = document.createElement('li'); li.className = 'mui-table-view-cell'; li[removed] = '第' (index 1) '个选项卡子项-' (length (reverse ? (count - i) : (i 1))); fragment.appendChild(li); } return fragment; }; }); })(mui); [removed]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

独行侠_阿涛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值