JS 怎么控制页面序号较智能的生成?

https://img.mukewang.com/5c46cc34000160d808000052.jpg

当前页面号(2或3)靠近第一个页面的时候,转变成像这样子
1 2 3 4 5 ... 10

当前页面号(7)远离第一个页面且远离最后一个页面的时候,转变成像这样子
1 ... 6 7 8 ... 10

当前页面号(8或9)接近最大页面数量的时候,又转变成这样子
1 ... 7 8 9 10

可能之前描述不清楚,更新一下问题。


PIPIONE
浏览 532回答 1
1回答

HUH函数

阿西吧、刚刚在更新问题的时候突然想到了写法、我分享一下可能出现情况是这样子的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) {&nbsp; &nbsp; let page_index_list = []&nbsp; &nbsp; let page_index&nbsp; &nbsp; if (max_page_number <= 8) {&nbsp; &nbsp; &nbsp; &nbsp; page_index_list = page_index_list.concat(make_array_number(1, max_page_number))&nbsp; &nbsp; } else if (current_page >= max_page_number - 2) {&nbsp; &nbsp; &nbsp; &nbsp; page_index_list = [1, -1]&nbsp; &nbsp; &nbsp; &nbsp; page_index_list = page_index_list.concat(make_array_number(max_page_number - 4, max_page_number))&nbsp; &nbsp; } else if (current_page <= 3) {&nbsp; &nbsp; &nbsp; &nbsp; page_index_list = page_index_list.concat(make_array_number(1, 5))&nbsp; &nbsp; &nbsp; &nbsp; page_index_list = page_index_list.concat([-1, max_page_number])&nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; page_index_list = [1, -1]&nbsp; &nbsp; &nbsp; &nbsp; page_index_list = page_index_list.concat(make_array_number(current_page - 1, current_page + 1))&nbsp; &nbsp; &nbsp; &nbsp; page_index_list = page_index_list.concat([-1, max_page_number])&nbsp; &nbsp; }&nbsp; &nbsp; return page_index_list}function make_array_number(min, max) {&nbsp; &nbsp; let array_number = []&nbsp; &nbsp; let index = min&nbsp; &nbsp; while(index <= max) {&nbsp; &nbsp; &nbsp; &nbsp; array_number.push(index)&nbsp; &nbsp; &nbsp; &nbsp; index += 1&nbsp; &nbsp; }&nbsp; &nbsp; return array_number}经过一个for循环添加元素结果如下
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript