1 回答

TA贡献1836条经验 获得超4个赞
阿西吧、刚刚在更新问题的时候突然想到了写法、我分享一下
可能出现情况是这样子的
max 为最大页面号
current为当前页面号
1 2 3 4 5 6 7(max <= 7)
1 ... 4 5 6 7 8(current >= max-2)
1 2 3 4 5 ... 8(current <= 3)
1 2 3 4 5 ... 9(current <= 3)
1 ... 4 5 6 ... 9(current > 3)
按钮总数固定为7个(包括...)
分析了一下我的页号生成函数应该这样写、请无视我的代码水平
make_page_number 为生成页面序列的函数
make_array_number 打酱油的函数
返回结果为数组,根据数组生成页面按钮即可
生成结果数组中 -1 代表 ...
function make_page_number(current_page, max_page_number) {
let page_index_list = []
let page_index
if (max_page_number <= 8) {
page_index_list = page_index_list.concat(make_array_number(1, max_page_number))
} else if (current_page >= max_page_number - 2) {
page_index_list = [1, -1]
page_index_list = page_index_list.concat(make_array_number(max_page_number - 4, max_page_number))
} else if (current_page <= 3) {
page_index_list = page_index_list.concat(make_array_number(1, 5))
page_index_list = page_index_list.concat([-1, max_page_number])
} else {
page_index_list = [1, -1]
page_index_list = page_index_list.concat(make_array_number(current_page - 1, current_page + 1))
page_index_list = page_index_list.concat([-1, max_page_number])
}
return page_index_list
}
function make_array_number(min, max) {
let array_number = []
let index = min
while(index <= max) {
array_number.push(index)
index += 1
}
return array_number
}
经过一个for循环添加元素结果如下
添加回答
举报