滚动条到底自动加载图片是一种常见的网页优化技术,称为“无限滚动”或“滚动加载”。它允许用户在滚动页面时动态加载更多内容,而不是一次性加载所有内容。这种技术可以提高用户体验,减少初始加载时间,并节省服务器带宽。
以下是一个简单的JavaScript实现示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Infinite Scroll Example</title>
<style>
.image-container {
display: flex;
flex-wrap: wrap;
}
.image-container img {
width: 200px;
height: 200px;
margin: 5px;
}
</style>
</head>
<body>
<div id="imageContainer" class="image-container"></div>
<script>
let allImagesLoaded = false;
const imageContainer = document.getElementById('imageContainer');
const totalImages = 50; // 假设总共有50张图片
let loadedImages = 0;
function loadImages() {
for (let i = 0; i < 10 && loadedImages < totalImages; i++) {
const img = new Image();
img.src = `https://via.placeholder.com/200?text=Image+${loadedImages + 1}`;
imageContainer.appendChild(img);
loadedImages++;
}
}
window.addEventListener('scroll', () => {
if (window.innerHeight + window.scrollY >= document.body.offsetHeight - 50 && !allImagesLoaded) {
loadImages();
}
});
// 初始加载一些图片
loadImages();
</script>
</body>
</html>
function debounce(func, wait) {
let timeout;
return function(...args) {
clearTimeout(timeout);
timeout = setTimeout(() => func.apply(this, args), wait);
};
}
window.addEventListener('scroll', debounce(() => {
if (window.innerHeight + window.scrollY >= document.body.offsetHeight - 50 && !allImagesLoaded) {
loadImages();
}
}, 200));
通过以上方法,可以有效实现滚动条到底自动加载图片的功能,并解决常见的问题。
领取专属 10元无门槛券
手把手带您无忧上云