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