我有一些功能,它会检查用户是否滚动到页面底部,如果是,则运行ajax并将部分结果添加到当前页面。 这很好用,但是如果我要添加负数来更快地启动这个功能,getData()函数会运行很多次,而且所有代码都开始变得很奇怪 - 你可以向上滚动一个像素然后再次运行。下面是没有偏移的工作版本,接下来是偏移,这对我来说更好,因为函数开始时间较早,但加载getData()多次,这是错误的。
我考虑使用flag的一些解决方案 - true / false,但我无法确定这是怎么做的。
$(window).scroll(function() {
if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) {
console.log(counter)
if (counter > sum) {
return false;
} else {
getData(counter);
counter++;
}
}
});
$(window).scroll(function() {
if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight - 300) {
console.log(counter)
if (counter > sum) {
return false;
} else {
getData(counter);
counter++;
//$(window).unbind('scroll');
}
}
});
答案 0 :(得分:0)
感谢你的推荐。 多亏了这一点,我能够修复我的代码,现在一切正常。 下面的例子:
$(window).scroll(function() {
var timer;
if (timer) {
window.clearTimeout(timer);
}
timer = window.setTimeout(function() {
if ($(window).scrollTop() >= $(document).height() - $(window).height() - 500) {
console.log(counter)
if (counter > sum) {
return false;
} else {
getData(counter);
counter++;
}
}
}, 200);
});