1、我们在项目中经常会有这样的需求就是需要滚动加载数据;
2、原理利用分页的原理即可实现;见下面代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>滚动条滚动加载</title>
<script type="text/javascript" src="js/jquery-1.8.0.min.js"></script>
<script type="text/javascript">
$(function(){
init();
});
//定义几个全局变量
var currPage = 1;
var currPageSize = 10;
var recordCount = 0;
function init(){
var para={};
//默认加载第一页
dataBody(para);
if(currPage==1){
//清空数据
$("#context").html('');
}
$(window).scroll(function(){//滚动从第二页开始
var scrollTop = $(this).scrollTop();
var scrollHeight = $(document).height();
var windowHeight = $(this).height();
if(scrollTop + windowHeight == scrollHeight && ((currPage-1)*currPageSize < recordCount)){
dataBody(para);
}
});
}
/**
* 加载数据的方法
*/
function dataBody(para){
para.currentPage = currPage;//这里值是变的
para.pageSize = currPageSize;
var div='';
/*
这里本来是要后台去数据的,我这里就不取了;其实一样的,
这里取出来的后台的数据,同时需要取出总记录数; recordCount = res.recordCount ;
如果不清楚的加好友QQ6190660780;希望和大家共同提高
*/
/*$.post('',para,function(res){},'json');*/
recordCount=38;//这里用于测试可以加载四次;
div='<dl>'+
'<div class="title">我是标题</div>'+
'<p>1、此处省略1000字</p>'+
'<p>2、此处省略1000字</p>'+
'<p>3、此处省略1000字</p>'+
'<p>4、此处省略1000字</p>'+
'<p>5、此处省略1000字</p>'+
'</dl>';
$("#context").append(div);
//让页码向下走一个
currPage+=1;
}
</script>
<style type="text/css">
.title{
text-align: center;
line-height: 30px;
background: #216BE6
}
</style>
</head>
<body>
<h1>滚动加载内容</h1>
<div id="context">
<!-- 此处就是循环部分
<dl>
<div class="title">我是标题</div>
<p>1、此处省略1000字</p>
<p>2、此处省略1000字</p>
<p>3、此处省略1000字</p>
<p>4、此处省略1000字</p>
<p>5、此处省略1000字</p>
</dl>
-->
</div>
</body>
</html>
3、相关截图
4、案例下载【免积分】http://download.csdn.net/detail/u011431550/8388109
原文:http://blog.csdn.net/u011431550/article/details/43033469