在JavaScript中实现图片搜索分页,通常涉及到以下几个基础概念:
以下是一个简单的示例,展示如何使用JavaScript实现图片搜索分页:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>图片搜索分页</title>
<style>
.image-container {
display: flex;
flex-wrap: wrap;
}
.image-item {
width: 100px;
height: 100px;
margin: 5px;
}
.pagination {
margin-top: 20px;
text-align: center;
}
.pagination button {
margin: 0 5px;
}
</style>
</head>
<body>
<div id="image-container" class="image-container"></div>
<div class="pagination" id="pagination"></div>
<script src="script.js"></script>
</body>
</html>
const imageContainer = document.getElementById('image-container');
const pagination = document.getElementById('pagination');
let currentPage = 1;
const pageSize = 10; // 每页显示10张图片
// 模拟从服务器获取图片数据
function fetchImages(page) {
return new Promise((resolve) => {
setTimeout(() => {
const images = [];
for (let i = (page - 1) * pageSize + 1; i <= page * pageSize; i++) {
images.push(`https://via.placeholder.com/100?text=Image+${i}`);
}
resolve(images);
}, 500);
});
}
// 渲染图片
function renderImages(images) {
imageContainer.innerHTML = '';
images.forEach((imageUrl) => {
const img = document.createElement('img');
img.src = imageUrl;
img.alt = 'Image';
img.classList.add('image-item');
imageContainer.appendChild(img);
});
}
// 渲染分页控件
function renderPagination(totalPages) {
pagination.innerHTML = '';
for (let i = 1; i <= totalPages; i++) {
const button = document.createElement('button');
button.innerText = i;
button.addEventListener('click', () => {
currentPage = i;
fetchAndRenderImages();
});
if (i === currentPage) {
button.disabled = true;
}
pagination.appendChild(button);
}
}
// 获取并渲染图片和分页控件
async function fetchAndRenderImages() {
const images = await fetchImages(currentPage);
renderImages(images);
renderPagination(10); // 假设总共有10页
}
// 初始化
fetchAndRenderImages();
fetchImages
函数模拟从服务器获取图片数据。renderImages
函数将图片渲染到页面上。renderPagination
函数生成并渲染分页控件。fetchAndRenderImages
函数负责获取图片数据并渲染图片和分页控件。currentPage
并重新渲染图片和分页控件。通过以上步骤和代码示例,你可以实现一个简单的图片搜索分页功能。
领取专属 10元无门槛券
手把手带您无忧上云