本人第一篇博客,入行好久了,懒,写一个玩玩
function scroll(f,data) {
/**
* isLoading 当前是否在加载状态
* f 要执行的函数
* data f函数的参数 是一个对象,
* 注意,不要放page 分页数据,page要在外面的 f 函数赋值
*/
//绑定滚动事件
$(window).scroll(function () {
//如果当前页面正在加载数据 这个时候 下面那的代码不执行
if (isLoading) return;
//获取文档的高度
var dH = $(document).height();
//获取滚动高度
var sH = $(window).scrollTop();
//获取可视区域的高度
var wH = $(window).height();
var s = dH - sH;
//检测尺寸
//文档高度减去滚动高度小于div的高度 进行加载
// console.log(dH -sH)
if (dH - sH <= 700) { //这里的数值需要根据拉取的数据多少进行调节
//修改检测变量的值 为真
isLoading = true;
//请求加载的数据函数
f(data);
}
})
}
//要调用的函数
var page=1;
var isLoading = false; //设置当前是否能加载
分页参数不能跟放在data里,函数scroll加载后,里面的参数是死的了,page要在加载的函数里调用
function getGoodslist(data){
data.page=page;
$.get('__APP__/Sngoods/getlist',data, function (res) {
if (res.data != null) {
page++;
isLoading = false;
}else{
isLoading=true; //isLoading 是否加载,当返回的数据是空的时候,就禁止下拉加载了
}
var data = res.data;
if(res.error=='00'){
$('.content').append(goods(data));
}else{
$('.bottom').show();
}
},'json')
}
调用
//绑定滚动事件
scroll(getGoodslist,{vidx: vidx, status: 1});
我试过好多次想调用scroll函数是直接传入一个完整的函数,但是发现这样的话加载的时候就会调用传入的函数一次,之后这个函数就不会调用了,不知道这是什么原理,看到这篇文章的小伙伴,要是知道的话留个言,互帮互助了