仅在 post 增量中显示精确数字前后的 3 个数字

Show 3 numbers only before and after of an exact number in a post-increment

我不知道怎么问这个问题。如果我确切地知道要寻找什么,我可能不必在此处 post。我会说明情况,我希望你们能告诉我到底要找什么(或什么类型的功能)。 这是我正在处理的代码 -

$walkaround_pages = 15;
$walkaround_page = $_GET['walkaround_page'];
for ($wp = 1; $wp <= $walkaround_pages; $wp++) {
    echo '<a class="pagination_links'.(($wp==$walkaround_page)?' current_page':"").'" href="/panel/?walkaround_page='.$wp.'">'.$wp.'</a>';
}

这会生成分页链接。当总页数($walkaround_pages)超过10页时,移动设备放不下。所以我想做一些事情,如果当前页面 ($walkaround_page) 比方说 7,它只会显示 (4,5,6) 之前的 3 个数字和 (8,9,10) 之后的 3 个数字,而不是显示所有数字 1 到 15。 谁能告诉我我到底在找什么?

在回显之前添加一个条件

if( abs($wp - $walkaround_page) <= 3){
        echo '<a class="pagination_links'.(($wp==$walkaround_page)?' current_page':"").'" href="/panel/?walkaround_page='.$wp.'">'.$wp.'</a>';
}

abs 函数将 return 绝对值,因此它 return 是正数,如果它是比当前页面小或大的 3 个数字之一

live demo

这是一个使用 @media 规则的 CSS 示例。

关于此的重要部分是您可以使它成为一个非常流畅的设计。例如,当用户旋转他们的设备时,将显示额外的链接。

如果用户调整浏览器大小,则相同 window。

.wide a, .narrow a {
  padding:0px 0.5em;
}
.wide a:hover, .narrow a:hover {
  color:#fff;
  background:#345;
}

/* this would be in your @media rule */
/* @media screen and (max-width: 480px) { */ 
.narrow a:nth-of-type(n+6) {
  display:none;
}
/* } */
<p>For demonstration only</p>
<div class="wide">
<a href="#">1</a> <a href="#">2</a> <a href="#">3</a>
<a href="#">4</a> <a href="#">5</a> <a href="#">6</a>
<a href="#">7</a> <a href="#">8</a> <a href="#">9</a>
<a href="#">10</a>
</div>

<p>Below is all you would have</p>
<div class="narrow">
<a href="#">1</a> <a href="#">2</a> <a href="#">3</a>
<a href="#">4</a> <a href="#">5</a> <a href="#">6</a>
<a href="#">7</a> <a href="#">8</a> <a href="#">9</a>
<a href="#">10</a>
</div>

您可以计算出与当前页面相关的循环的开始和结束部分,然后循环遍历该页面...

$walkaround_pages = 15;
$max_gap = 3;      // How many pages before and after you want
$walkaround_page = $_GET['walkaround_page'];
$start = max(1,$walkaround_page-$max_gap);
$end = min($walkaround_pages,$walkaround_page+$max_gap);
for ($wp = $start; $wp <= $end; $wp++) {

start是减去项目数,但要保证1是最低的,end是加页数,但以总页数为限。