Показать сообщение отдельно
  #9 (permalink)  
Старый 16.05.2015, 05:49
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

У всех все неправильно, один я в белом. Решение давно известно, вот такое

задается макс слотов, скажем 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. Готовый для такой логики найти не удалось, кругом были баяны.
Ответить с цитированием