Back
A step-by-step guide to building a robust and flexible pagination system with customizable navigation elements and seamless transitions.
<div class="pagination-container">
<button class="pagination-button prev" onclick="navigate(-1)">« Prev</button>
<div class="page-numbers" id="pageNumbers"></div>
<button class="pagination-button next" onclick="navigate(1)">Next »</button>
</div>
let currentPage = 1;
const totalPages = 10;
function renderPageNumbers() {
const pageNumbers = document.getElementById('pageNumbers');
pageNumbers.innerHTML = '';
for (let i = 1; i <= totalPages; i++) {
const pageNumber = document.createElement('span');
pageNumber.className = 'page-number';
pageNumber.innerText = i;
if (i === currentPage) {
pageNumber.classList.add('active');
}
pageNumber.onclick = () => goToPage(i);
pageNumbers.appendChild(pageNumber);
}
}
function navigate(direction) {
currentPage = Math.max(1, Math.min(totalPages, currentPage + direction));
renderPageNumbers();
}
function goToPage(page) {
currentPage = page;
renderPageNumbers();
}
window.onload = renderPageNumbers;
.pagination-container {
display: flex;
align-items: center;
justify-content: center;
margin-top: 20px;
font-family: Arial, sans-serif;
}
.pagination-button {
background-color: #02a8f4;
color: white;
border: none;
padding: 10px 20px;
margin: 0 5px;
border-radius: 5px;
cursor: pointer;
transition: background-color 0.3s ease;
}
.pagination-button:hover {
background-color: #026c9f;
}
.page-numbers {
display: flex;
align-items: center;
}
.page-number {
margin: 0 5px;
padding: 10px;
border-radius: 5px;
cursor: pointer;
transition: background-color 0.3s ease, transform 0.3s ease;
}
.page-number.active {
background-color: #32ffcc;
transform: scale(1.2);
}
.page-number:hover {
background-color: #d2f2ff;
}
<div class="pagination-container">
<button class="pagination-button prev" onclick="navigate(-1)">« Prev</button>
<div class="page-numbers" id="pageNumbers"></div>
<button class="pagination-button next" onclick="navigate(1)">Next »</button>
</div>
<script>
let currentPage = 1;
const totalPages = 10;
function renderPageNumbers() {
const pageNumbers = document.getElementById('pageNumbers');
pageNumbers.innerHTML = '';
for (let i = 1; i <= totalPages; i++) {
const pageNumber = document.createElement('span');
pageNumber.className = 'page-number';
pageNumber.innerText = i;
if (i === currentPage) {
pageNumber.classList.add('active');
}
pageNumber.onclick = () => goToPage(i);
pageNumbers.appendChild(pageNumber);
}
}
function navigate(direction) {
currentPage = Math.max(1, Math.min(totalPages, currentPage + direction));
renderPageNumbers();
}
function goToPage(page) {
currentPage = page;
renderPageNumbers();
}
window.onload = renderPageNumbers;
</script>
<style>
.pagination-container {
display: flex;
align-items: center;
justify-content: center;
margin-top: 20px;
font-family: Arial, sans-serif;
}
.pagination-button {
background-color: #02a8f4;
color: white;
border: none;
padding: 10px 20px;
margin: 0 5px;
border-radius: 5px;
cursor: pointer;
transition: background-color 0.3s ease;
}
.pagination-button:hover {
background-color: #026c9f;
}
.page-numbers {
display: flex;
align-items: center;
}
.page-number {
margin: 0 5px;
padding: 10px;
border-radius: 5px;
cursor: pointer;
transition: background-color 0.3s ease, transform 0.3s ease;
}
.page-number.active {
background-color: #32ffcc;
transform: scale(1.2);
}
.page-number:hover {
background-color: #d2f2ff;
}
</style>
Thank you for reading this article.
Comments
No comments yet. Be the first to comment!