iscroll实现下拉刷新,上拉加载

注:仅个人笔记,若有错误,请指正。若有疑问可相互讨论。

电脑和手机在同一个局域网下,用手机查看效果。

html:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/>
		<title></title>
		<link rel="stylesheet" type="text/css" href="css/reset.css"/>
		<link rel="stylesheet" type="text/css" href="css/index.css"/>
		<script src="js/jquery-2.1.0.js" type="text/javascript" charset="utf-8"></script>
		<script src="js/iscroll-probe.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div class="wrapper">
			<header>header</header>
			<section id="section">
				<div class="scroll-wrapper">
					<p class="ref"><img src="img/1.gif"/>下拉刷新...</p>
					<ul class="ULs">
						<li>1</li>
						<li>2</li>
						<li>3</li>
						<li>4</li>
						<li>5</li>
						<li>6</li>
						<li>7</li>
						<li>8</li>
						<li>9</li>
						<li>4</li>
						<li>5</li>
						<li>9</li>
						<li>4</li>
						<li>5</li>
					</ul>
					<p class="clickMore"><img src="img/2.gif"/>上拉加载更多..</p>
				</div>
			</section>
			<footer>footer</footer>
		</div>
	</body>
	<script type="text/javascript">
		$(document).ready(function(){
			var myscroll,
				isPulled = false; // 拉动标记;
			myscroll = new IScroll("#section",{
				probeType:3,
				scrollX: false,
				mouseWheel: true,
				click: true,
				hScrollbar:false
			});
			myscroll.on("scroll",function(){
				var height = this.y;
				var boHeight = this.maxScrollY - height;
				console.log("height:" + height);
	            console.log("maxScrollY:" + this.maxScrollY);
	            console.log("boHeight:" + boHeight);
				// 控制下拉显示
			    if (height >= 20) {
		        	$('.ref').css("display","block");
//		        	setTimeout(function(){
//						$(".ULs").html("<li>2</li><li>2</li><li>2</li><li>2</li><li>2</li><li>2</li><li>2</li><li>2</li>");
//						myscroll.refresh();
//		        	},1000);
			        return;
			    }
			    else if (height < 20 && height >= 0) {
			        $('.ref').css("display","none")
			        return;
			    }
			    
			    // 控制上拉显示
			    if(boHeight >= 20){
			    	$('.clickMore').css("display","block");
			    	isPulled = true;
			    	return;
			    }else if(boHeight < 20 && boHeight>= 0){
			    	$('.clickMore').css("display","none");
			    	return;
			    }
			    
			});
			myscroll.on("scrollEnd",function(){
				if(isPulled){
					isPulled = false;
					//加载数据
					var ht = "<li>10</li><li>10</li>"
					$(".ULs").append(ht);
//					$('.clickMore').html("没有更多数据")
					myscroll.refresh();
				}
			});
			
			document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
			
			$('.clickMore').on('click',function(){
				console.log(12)
			});
		})
	</script>
</html>

reset.css:

/**
 * Eric Meyer's Reset CSS v2.0 (http://meyerweb.com/eric/tools/css/reset/)
 * http://cssreset.com
 */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header,
menu, nav, output, ruby, section, summary,
time, mark, audio, video, input {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font-weight: normal;
    vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, menu, nav, section {
    display: block;
}

body {
    line-height: 1;
}

blockquote, q {
    quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
    content: none;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

/* custom */
a {
    color: #7e8c8d;
    text-decoration: none;
    -webkit-backface-visibility: hidden;
}

li {
    list-style: none;
}

::-webkit-scrollbar {
    width: 5px;
    height: 5px;
}

::-webkit-scrollbar-track-piece {
    background-color: rgba(0, 0, 0, 0.2);
    -webkit-border-radius: 6px;
}

::-webkit-scrollbar-thumb:vertical {
    height: 5px;
    background-color: rgba(125, 125, 125, 0.7);
    -webkit-border-radius: 6px;
}

::-webkit-scrollbar-thumb:horizontal {
    width: 5px;
    background-color: rgba(125, 125, 125, 0.7);
    -webkit-border-radius: 6px;
}

html, body {
	height:100%;
    width: 100%;
}

body {
    -webkit-text-size-adjust: none;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

index.css(less编译):

.wrapper{
    height:100%;
    width:100%;
    display: flex;
    flex-direction: column;
    header{
        height:44px;
        width:100%;
        text-align:center;
        line-height:44px;
    }
    section{
        flex: 1;
        overflow: auto;
        width:100%;
        background-color: gray; 
        .scroll-wrapper{
            position: relative;
            .ref{
                display: none;
                position: absolute;
                top:-20px;
                left: 0;
                width:100%;
                height:20px;
                text-align: center;
            }
            ul{
                width:100%;
                li{
                    height:50px;
                    border-top:1px solid #000;
                    background-color: #f9f9f9;
                }
            }
            .clickMore{
                display: none;
                position: absolute;
                bottom:-20px;
                left: 0;
                padding-top:10px;
                height:20px;
                padding-top: 10px;
                width:100%;
                text-align: center;
            }
        }
    }
    footer{
        height:44px;
        width:100%;
        text-align:center;
        line-height:44px;
    }
}

js文件包括:jquery-2.1.0.js,iscroll-probe.js。


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值