У всех все неправильно, один я в белом. Решение давно известно, вот такое
задается макс слотов, скажем 10
в эти 10 слотов загоняется весь интерфейс с кнопками, логика построения которого такова:
если паг меньше кол-ва слотов - вывести континуально
если паг больше - задать минимальный охват континуума, скажем в 5 страниц, а все остальное поделить между квантами начала и конца, особенно важен конец который показывает юзеру что ему ни в жизнь дотудова не домотать. Ну то есть общее количество страниц должно сохраняться всегда.
Например мы на первой странице где их 12
1 2 3 4 5 6 7 … 11 12 Вперед »
Как видите разрыв шаблона начинается со страницы 7. Потому что континуум 5 слотов, а когда он целиком влезает, к нему континуально добавляется неиспользуемый квант начала. Если домотать до страницы 7, то получим
« Назад 1 2 … 5 6 7 8 … 11 12 Вперед »
... - hellip'ы - тоже кнопки, это третья кнопка в боковых отростках которая имеет номер страницы как обычно, но рендерится в качестве индикатора разрыва континуума
Теперь если мотать дальше, то неразрывный диапазон переедет к концу и там захапает отросток
« Назад 1 2 … 6 7 8 9 10 11 12 Вперед »
Он так и будет сдвигаться вправо пока не упрется в конец номеров и на последней странице получится
« Назад 1 2 … 10 11 12
Такая логика обеспечивает всегда отображение начала и конца диапазона страниц и небольшой промежуток для навигации вокруг выбранной.
Такая логика на многих коммерческих сайтах применена. Я по внешним признакам писал код, он на php. Готовый для такой логики найти не удалось, кругом были баяны.
|