iscroll 移动端上拉刷新 下拉加载 实例 !

iscroll.js  是一款移动端框架, 相信做移动的同学都有接触吧, 哈哈 ,

下面分享一下用法 , 首先再你的head里引入iscroll.js 路径需要自行修改

<script src="iscroll.js"></script>

  好吧, 引入以后就该来点实际的啦 ,

首先你的搭建你的HTML 结构  : 如以下代码 , 运动的对象就是你ID  为wrapper下的第一个子元素 ,没办法谁叫你用的框架呢 。 当然同学们也可以自行扩展

	<div id="wrapper">
		<ul>
			<li></li>
			.....
		</ul>
	</div>

引完js , 搭建好结构以后  然后再贴入如下脚本

function loaded() {
	pullDownEl = document.getElementById(‘pullDown‘);
	pullDownOffset = pullDownEl.offsetHeight;
	pullUpEl = document.getElementById(‘pullUp‘);
	pullUpOffset = pullUpEl.offsetHeight;

	myScroll = new iScroll(‘wrapper‘, {
		useTransition: true,
		topOffset: pullDownOffset,
		onRefresh: function () {
			if (pullDownEl.className.match(‘loading‘)) {
				pullDownEl.className = ‘‘;
				pullDownEl.querySelector(‘.pullDownLabel‘).innerHTML = ‘下拉刷新‘;
			} else if (pullUpEl.className.match(‘loading‘)) {
				pullUpEl.className = ‘‘;
				pullUpEl.querySelector(‘.pullUpLabel‘).innerHTML = ‘上拉加载更多‘;
			}
		},
		onScrollMove: function () {
			if (this.y > 5 && !pullDownEl.className.match(‘flip‘)) {
				pullDownEl.className = ‘flip‘;
				pullDownEl.querySelector(‘.pullDownLabel‘).innerHTML = ‘松开刷新‘;
				this.minScrollY = 0;
			} else if (this.y < 5 && pullDownEl.className.match(‘flip‘)) {
				pullDownEl.className = ‘‘;
				pullDownEl.querySelector(‘.pullDownLabel‘).innerHTML = ‘下拉刷新‘;
				this.minScrollY = -pullDownOffset;
			} else if (this.y < (this.maxScrollY - 10) && !pullUpEl.className.match(‘flip‘)) {
				pullUpEl.className = ‘flip‘;
				pullUpEl.querySelector(‘.pullUpLabel‘).innerHTML = ‘松开刷新‘;
				this.maxScrollY = this.maxScrollY;
			} else if (this.y > (this.maxScrollY + 10) && pullUpEl.className.match(‘flip‘)) {
				pullUpEl.className = ‘‘;
				pullUpEl.querySelector(‘.pullUpLabel‘).innerHTML = ‘上拉加载更多‘;
				this.maxScrollY = pullUpOffset;
			}
		},
		onScrollEnd: function () {
			if (pullDownEl.className.match(‘flip‘)) {
				pullDownEl.className = ‘loading‘;
				pullDownEl.querySelector(‘.pullDownLabel‘).innerHTML = ‘加载中‘;
				pullDownAction();	// Execute custom function (ajax call?)
			} else if (pullUpEl.className.match(‘flip‘)) {
				pullUpEl.className = ‘loading‘;
				pullUpEl.querySelector(‘.pullUpLabel‘).innerHTML = ‘加载中‘;
				pullUpAction();	// Execute custom function (ajax call?)
			}
		}
	});

	setTimeout(function () { document.getElementById(‘wrapper‘).style.left = ‘0‘; }, 800);
}
document.addEventListener(‘touchmove‘, function (e) {  e.preventDefault(); }, false);
document.addEventListener(‘DOMContentLoaded‘, function () { setTimeout(loaded, 200); }, false);

准备就绪后

就应该执行了

function pullDownAction () { // 下拉刷新
	window.location.reload();
}
var i = 2; //初始化页码为2
function pullUpAction () { 上拉加载更多
	var page = i++; // 每上拉一次页码加一次 (就比如下一页下一页)
	Ajax(page); // 运行ajax 把2传过去告诉后台我上拉一次后台要加一页数据(当然 这个具体传什么还得跟后台配合)
	myScroll.refresh();// <-- Simulate network congestion, remove setTimeout from production!
}
function Ajax(page){ // ajax后台交互
	$.ajax({
		type : "post",
		dataType : "JSON",
		url : "/installerAjax", // 你请求的地址
		data : {
			‘page‘: page  // 传过去的页码
		},
		success : function(data){
			data =  eval(data.clientList);
 			if(data.length){ // 如果后台传过来有数据执行如下操作 , 没有就执行else 告诉用户没有更多内容呢
				for( var i=0; i<(data.length/2); i++){  // 这里为你自己的代码不要照抄 , 操作你自己后台返回的数据
					var oLis = "<li><a href=‘/apps/clientCase?clientId=" +data[i+i].id+ "‘ class=‘left‘><p class=‘jsyh_logo‘><img src=‘"+"http://localhost:8080"+ "/" + data[i+i].photo+"‘></p><div class=‘text‘><p>" + data[i+i].clientName +"</p><span class=‘blue_icon‘>"+data[i+i].number+"</span></div></a><a href=‘/apps/clientCase?clientId=" +data[i+i+1].id+ "‘ class=‘left‘><p class=‘jsyh_logo‘><img src=‘"+"http://localhost:8080"+ "/" + data[i+i+1].photo+"‘></p><div class=‘text‘><p>" + data[i+i+1].clientName +"</p><span class=‘blue_icon‘>"+data[i+i+1].number+"</span></div></a></li>";
					$(‘ul.customer‘).append(oLis);
				}
			}else{
				$(‘.pullUpLabel‘).html(‘亲,没有更多内容了!‘);
			} 

		},
		error : function(){

		}
	});

}

建议页面不要大量用到iscroll, 太耗性能

时间: 2024-10-08 11:03:57

iscroll 移动端上拉刷新 下拉加载 实例 !的相关文章

jQuery手机端上拉刷新下拉加载更多页面

<!doctype html> <html> <head> <title>jquery 手机端上拉刷新下拉加载更多页面</title> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <meta name="viewpost" content="width=device-wi

安卓,采用最简单易懂的方式实现上拉刷新下拉加载更多

<!-- Description:上拉刷新,下拉加载更多是现在最流行的手势操作,但是对于初学者来说,在实现上是有一定难度的, 网上很多教程讲的都过于复杂,对于初学者无法起到引导作用,特此写本文,帮助安卓新手入门理解此, 还有最为重要的一点:本文只帮助你理解,并不是想你成为代码搬运工!别被那么多代码吓到了, 其中很多都是注释,仔细看注释对你理解有很大的帮助 Author:Booker L Date:2014-05-16 --> 一,事先准备: 实现该功能,最基本的需要两个东西,一个是OnTouc

Android之 RecyclerView,CardView 详解和相对应的上拉刷新下拉加载

随着 Google 推出了全新的设计语言 Material Design,还迎来了新的 Android 支持库 v7,其中就包含了 Material Design 设计语言中关于 Card 卡片概念的实现 -- CardView.RecyclerView也是谷歌V7包下新增的控件,用来替代ListView的使用,在RecyclerView标准化了ViewHolder类似于ListView中convertView用来做视图缓存. RecyclerView的优点就是,他可以通过设置LayoutMan

PullToRefreshRecyclerView——带上拉刷新下拉加载功能的RecyclerView

PullToRefreshRecyclerView——带上拉刷新下拉加载功能的RecyclerView

新浪微博项目---首页技术点三.上拉刷新,下拉加载的实现(使用ios自带的小菊花实现)

一.上拉刷新,下拉加载的实现(使用ios自带的小菊花实现) 1.下拉刷新 #pragma mark ---集成下*拉刷新控件 -(void)setupDownRefresh { //1.添加刷新控件 UIRefreshControl *control = [[UIRefreshControl alloc] init]; //只有用户通过手动下拉刷新,才会触发UIControlEventValueChanged事件 [control addTarget:self action:@selector(

Android MVP设计框架模板 之 漂亮ListView上拉刷新下拉加载更多

mvp的全称为Model-View-Presenter,Model提供数据,View负责显示,Controller/Presenter负责逻辑的处理.MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会直接从Model中读取数据而不是通过 Controller. 项目中大部分是面对接口编程,通过P层可以预先将所有需要的接口功能

通用版的上拉刷新下拉加载控件

通用版的上拉刷新下拉加载控件 适用于各种控件实现上拉刷新,下拉加载的功能. 下载地址:http://www.devstore.cn/code/info/964.html 运行截图:    

小程序 上拉刷新/下拉加载

小程序项目中上拉刷新下拉加载是比较常见的需求,官方文档也提供了相当友好的API,但是因为API隐藏的比较深,文档描述也比较模糊所以也折腾了一番(官方文档),在此记录一下使用方式 onPullDownRefresh()  //用户下拉刷新事件,onReachBottom() //用户上拉触底事件 onPullDownRefresh和onReachBottom是小程序的页面事件,官方文档描述"需要在app.json的window选项中或页面的json文件中开启enablePullDownRefres

iOS-上拉刷新下拉加载 新版MJRefresh和EGOTableViewPullRefresh

上拉刷新下拉加载比较流行的两个第三方 MJRefresh和 EGOTableViewPullRefresh 一.最新版的MJRefresh 首先介绍M了个J的 最新版的MJRefresh 因为他的github里有详细介绍,话不多说上代码 [objc] view plain copy // //  ViewController.m //  新版MJRefresh Demo // //  Created by Jack_Jia on 16/1/19. //  Copyright ? 2016年 Ja

IOS学习之UiTableView下拉刷新与自动加载更多,百年不变的效果

IOS学习之UiTableView下拉刷新与自动加载更多,百年不变的效果(五) 五一劳动节马上来临,小伙伴有妹有很激动哟,首先祝天下所有的程序猿节日快乐!这个五一对于我来说有点不一样,我的人生从这个五一就转弯了,爱情长跑8年的我结婚了,一会支付宝账号我会公布出去,请自觉打款!谢谢合作. 灯光闪起来: 舞蹈跳起来: 歌曲唱起来: -------------------------------------------------------------------------------------