Нашёл такой пагинатор:
https://codepen.io/CryNet/pen/qBbjVda?editors=1010
Мне необходимо привести его функционал к следующему виду (см. самый низ):
https://elastic.github.io/eui/#/navigation/pagination
Мне осталось сделать, чтобы при клике на 4 отобразилась 6. Так само и с обратного конца, если мы кликнули на 7, то появилась 5. Но как это фиксить я пока не знаю. Помогите разобраться.
Я на пол пути:
Участок кода, отвечающий за кол-во отображённых кнопок:
оригиналif (Pagination.size < Pagination.step * 2 + 6) {
Pagination.Add(1, Pagination.size + 1);
} else if (Pagination.page < Pagination.step * 2 + 1) {
Pagination.Add(1, Pagination.step * 2 + 4);
Pagination.Last();
} else if (Pagination.page > Pagination.size - Pagination.step * 2) {
Pagination.First();
Pagination.Add(Pagination.size - Pagination.step * 2 - 2, Pagination.size + 1);
} else {
Pagination.First();
Pagination.Add(Pagination.page - Pagination.step, Pagination.page + Pagination.step + 1);
Pagination.Last();
}
Как он выглядит у меня:
правкиif (Pagination.size < Pagination.step * 2 + 6) {
Pagination.Add(1, Pagination.size + 1);
} else if (Pagination.page < Pagination.step * 2 + 1) {
Pagination.Add(1, Pagination.step * 2 + 2);
Pagination.Last();
} else if (Pagination.page > Pagination.size - Pagination.step * 2) {
Pagination.First();
Pagination.Add(Pagination.size - Pagination.step * 2, Pagination.size + 1);
} else {
Pagination.First();
Pagination.Add(Pagination.page - Pagination.step, Pagination.page + Pagination.step + 1);
Pagination.Last();
}