为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PIPIONE 2018-12-11 13:19:04
当前页面号(2或3)靠近第一个页面的时候,转变成像这样子1 2 3 4 5 ... 10当前页面号(7)远离第一个页面且远离最后一个页面的时候,转变成像这样子1 ... 6 7 8 ... 10当前页面号(8或9)接近最大页面数量的时候,又转变成这样子1 ... 7 8 9 10可能之前描述不清楚,更新一下问题。
查看完整描述

1 回答

?
HUH函数

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循环添加元素结果如下

https://img1.sycdn.imooc.com//5c46cc4c00018b4608000050.jpg

https://img1.sycdn.imooc.com//5c46cc4f000164ea08000047.jpg

https://img1.sycdn.imooc.com//5c46cc510001299508000046.jpg

https://img1.sycdn.imooc.com//5c46cc5300015faa08000041.jpg

https://img1.sycdn.imooc.com//5c46cc5600011a8808000041.jpg

查看完整回答
反对 回复 2019-01-22
  • 1 回答
  • 0 关注
  • 531 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号