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