一個好的分頁演算法應讓當前頁盡量置中,且首尾頁連結固定不隱藏,避免版面跳動。以下三行程式碼滿足前兩點需求:
$start = max(1, $curr_index - intval($link_count/2));
$end = min($start + $link_count - 1, $page_count);
$start = max(1, $end - $link_count + 1);
變數說明:
$curr_index:當前頁碼$link_count:顯示的頁碼連結數量$page_count:總頁數$start、$end:輸出的起始與結束頁碼同樣邏輯的 JavaScript 版本:
start = Math.max(1, curr_index - parseInt(link_count/2));
end = Math.min(page_count, start + link_count - 1);
start = Math.max(1, end - link_count + 1);
此演算法簡單易懂,適合快速整合專案。