參考 Laravel 5 的分頁模式,11 頁以下全部顯示,12 頁以上會出現省略的點點記號。
const page = document.querySelector('#page');
const pageNum = 16;
const urlParams = new URLSearchParams(window.location.search);
const activePage = urlParams.get('page');
console.log('activePage:', activePage);
// 顯示頁數 11 以下
if (pageNum <= 11) {
let data = '';
for (let i = 1; i <= pageNum; i++) {
data += `<li class="page-item"><a class="page-link" href="/?page=${i}">${i}</a></li>`;
}
page.innerHTML = data;
}
// 顯示頁數 12 以上
if (pageNum > 11) {
let data = '';
if (activePage < 7) {
for (let i = 1; i <= pageNum; i++) {
if (i <= 8) {
data += `<li class="page-item"><a class="page-link" href="/?page=${i}">${i}</a></li>`;
}
if (i === pageNum - 2) {
data += `<li class="page-item"><a class="page-link" href="javascript:;">...</a></li>`;
}
if (i === pageNum - 1) {
data += `<li class="page-item"><a class="page-link" href="/?page=${pageNum - 1}">${pageNum - 1}</a></li>`;
}
if (i === pageNum) {
data += `<li class="page-item"><a class="page-link" href="/?page=${pageNum}">${pageNum}</a></li>`;
}
}
}
if (activePage >= 7 && Number(activePage) + 6 <= pageNum) {
for (let i = 1; i <= pageNum; i++) {
if (i === 1 || i === 2) {
data += `<li class="page-item"><a class="page-link" href="/?page=${i}">${i}</a></li>`;
}
if (i === 3) {
data += `<li class="page-item"><a class="page-link" href="javascript:;">...</a></li>`;
}
if (i >= activePage - 3 && i <= Number(activePage) + 3) {
data += `<li class="page-item"><a class="page-link" href="/?page=${i}">${i}</a></li>`;
}
if (i === pageNum - 2) {
data += `<li class="page-item"><a class="page-link" href="javascript:;">...</a></li>`;
}
if (i === pageNum - 1) {
data += `<li class="page-item"><a class="page-link" href="/?page=${pageNum - 1}">${pageNum - 1}</a></li>`;
}
if (i === pageNum) {
data += `<li class="page-item"><a class="page-link" href="/?page=${pageNum}">${pageNum}</a></li>`;
}
}
}
if (activePage >= 7 && Number(activePage) + 6 > pageNum) {
for (let i = 1; i <= pageNum; i++) {
if (i === 1 || i === 2) {
data += `<li class="page-item"><a class="page-link" href="/?page=${i}">${i}</a></li>`;
}
if (i === 3) {
data += `<li class="page-item"><a class="page-link" href="javascript:;">...</a></li>`;
}
if (i >= pageNum - 8) {
data += `<li class="page-item"><a class="page-link" href="/?page=${i}">${i}</a></li>`;
}
}
}
page.innerHTML = data;
}