js/jquery控制页面动态加载数据 滑动滚动条自动加载事件--转他人的
相信很多人都见过瀑布流图片布局,那些图片是动态加载出来的,效果很好,对服务器的压力相对来说也小了很多
有手机的相信都见过这样的效果:进入qq空间,向下拉动空间,到底部时,会动态加载剩余的说说或者是日志
今天我们就来看看他们的实现思路和js控制动态加载的代码
原理:
就是为 window 添加一个 scroll事件 ,浏览器每次触发 scroll事件 时判断是否滚动到了浏览器底部,如果到了底部则加载新数据。关键是计算滚动条是否滚动到了浏览器底部,算法如下:
滚动条卷起来的高度 + 窗口高度 > 文档的总高度 + 50/*我这里将滚动响应区域高度取50px*/;
如果这个判断为 true 则表示滚动条滚动到了底部。
下面的代码主要是控制滚动条下拉时的加载事件的
在下面代码说明处,写上你的操作即可,无论是加载图片还是加载记录数据 都可以
别忘了引用 jquery 类库
$(window).scroll(function () {
var scrollTop = $(this).scrollTop();
var scrollHeight = $(document).height();
var windowHeight = $(this).height();
if (scrollTop + windowHeight == scrollHeight) { //此处是滚动条到底部时候触发的事件,在这里写要加载的数据,或者是拉动滚动条的操作
//var page = Number($("#redgiftNextPage").attr('currentpage')) + 1;
//redgiftList(page);
//$("#redgiftNextPage").attr('currentpage', page + 1); var index=$("#my-modal-loading").layer.load('1');//开始加载动画
$.ajax({
type: 'get',
url: 'xxxxxxxxxx',
data:{
xxx: 'xxx',
xxx: xxx
},
dataType: 'json',
error: function(request) {
alert('查找失败!');
},
success: function(data){
//console.log(data);
//数据加载
//结束加载动画
$("#my-modal-loading").layer.close(index);
}
});
}
});
解析:
判断滚动条到底部,需要用到 DOM 的三个属性值,即 scrollTop、clientHeight、scrollHeight 。
scrollTop 为滚动条在Y轴上的滚动距离。
clientHeight 为内容可视区域的高度。
scrollHeight 为内容可视区域的高度加上溢出(滚动)的距离。
从这个三个属性的介绍就可以看出来,滚动条到底部的条件即为 scrollTop + clientHeight == scrollHeight 。(兼容不同的浏览器)。