在JavaScript中实现滑动再加载(通常称为“无限滚动”或“滚动分页”)是一种优化网页性能和用户体验的技术。当用户滚动到页面底部时,自动加载更多内容,而不是一次性加载所有内容。
基础概念:
相关优势:
类型:
应用场景:
实现步骤:
示例代码:
let isLoading = false;
let hasMoreData = true; // 假设还有更多数据可以加载
window.addEventListener('scroll', () => {
if (isLoading || !hasMoreData) return;
const scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
const windowHeight = window.innerHeight;
const documentHeight = document.documentElement.offsetHeight;
// 判断是否滚动到底部
if (scrollTop + windowHeight >= documentHeight - 10) {
isLoading = true;
loadMoreData();
}
});
function loadMoreData() {
// 模拟发送请求获取更多数据
setTimeout(() => {
const newData = Array.from({ length: 10 }, (_, i) => `新数据 ${i + 1}`);
newData.forEach(data => {
const div = document.createElement('div');
div.textContent = data;
document.body.appendChild(div);
});
isLoading = false;
// 假设在加载5次后没有更多数据了
if (document.querySelectorAll('div').length >= 50) {
hasMoreData = false;
}
}, 1000);
}
常见问题及解决方法:
isLoading
),防止重复发送请求。hasMoreData
)来表示是否还有更多数据可以加载,当没有更多数据时停止加载。领取专属 10元无门槛券
手把手带您无忧上云