像Flickr一样的分页



我最近遇到了分页问题,碰巧有 100 页,所以显然我的分页变得很长。

现在我想通过删除一些链接来防止这种情况,所以而不是

1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10

我想将其显示为

1 - 2 - 3 - 4 - 5 - ... - 10

或者当您在第 4 页上时

1 - ... - 4 - 5 - 6 - ... 10

目前,显示我的分页的脚本如下所示:

$links = array();
for($i = 0; $i < $totalPages; $i++) {
    array_push($links, $i);
    }
foreach($links as $pageLink) {
    if($pageLink == $page) {
    $pagination .= "<li><a href='" . BASE_URL . $url . $pageLink . ".html' class='active'>" . ($pageLink + 1) . "</a></li>";
    } else {
        if($pageLink === '...') {
            $pagination .= "<li><a href='#'>...</a></li>";
        } else {
            $pagination .= "<li><a href='" . BASE_URL . $url . $pageLink . ".html'>" . ($pageLink + 1) . "</a></li>";
        }
    }   
}

我在一个数组中添加了所有链接,因此很容易调整它,但我无法弄清楚如何获得这样的分页。

以某种方式,您可以获取当前页码和最后一个页码。代表当前页面的寻呼机项目应与其他页面略有不同。如果您的页码小于或等于 3,则显示 1 2 3 ...最后页码,如果您的当前页面大于或等于上页页号 - 2,那么您的分页应该看起来像 1 ...67 68 69.否则,您的分页应看起来像 1 ...30 31 32 33 34 ...69(在本例中,您的当前页面为 32)。

最新更新