jQuery Paginator 3000 +

jQuery Paginator 3000 + — это виджет постраничной навигации реализованный в виде плагина для jQuery .

Я хотел бы сразу оговорится, что бы мне не присуждали все заслуги от идеи и до реализации, что впервые данную идею предложил Максим Попов, как сообщает нам автор первой реализации данного виджета koraboz, так же путем логики и размышлений почти к тому же самому результату пришел и «гуру» юзабилити Ярослав Бирзул, о чем он поведал всем в своем блоге.

Ниже в таблице представленные все версии данного плагина когда либо выпущенные мною.

 ZIP  Имя файла  Размер  Дата выпуска Лицензия
paginator_3000_1_2.zip 43.9 КБ  8 июля 2011  GPL
paginator_3000_1_1.zip  41.8 КБ  7 августа 2010  GPL
paginator_3000_1_0.zip  10 января 2010  GPL

Давайте разберем основные параметры данного плагина, в самом плагине объект параметров объявлен следующим образом:

//set default options
var options = {
    pagesTotal   : 1,
    pagesSpan    : 10,
    pageCurrent  : 1,
    baseUrl      : document.location.href+'&page=%number%',
    buildCounter : buildCounter,
    pageScroll 	 : 3,
    clickHandler : null,
    eturnOrder   : false,
    lang         : {
        next  : "Следующая",
        last  : "Последняя",
        prior : "Предыдущая",
        first : "Первая",
        arrowRight : String.fromCharCode(8594),
        arrowLeft  : String.fromCharCode(8592)
    },
    events       :{
        keyboard: true,
        scroll: true
    }
};

И так теперь более подробно:

pagesTotal — целое число. Задает общее количество страниц которое будет отображено в пагинаторе.

pagesSpan — целое число. Количество отображаемых страниц.

pageCurrent — целое число. Номер текущей страницы.

baseUrl — строка. Шаблон ссылки для навигации, данный параметр должен обязательно содержать значение %number% которое символизирует номер текущей страницы (по умолчанию) и подставляется в шаблон при генерации ссылок как результат функции buildCounter.

buildCounter — функция. Функция расчета значения %number% для шаблона ссылки, по умолчанию значение равно:

function buildCounter(page){ return page; }

pageScroll -целое число. Значение сообщает плагину о количестве страниц перелистываемых за 1 такт скрола мыши.

clickHandler — функция. CallBack функция вызываемая при клике по ссылке.

returnOrder — логическое (true/false). Cообщает плагину какой порядок страниц необходимо использовать прямой — false, или обратный — true.

lang — объект локализации плагина.

events — объект логических значений сообщающих плагину о необходимости использования событий: скролла мыши — events.scroll, клавиатуры — events.keyboard (навигация при помощи сочетаний клавиш Ctrl+Left и Ctrl+Right).

Демо версия.

Fork me on GitHub

Отзывов (23)

  1. Andrey:

    Не появилось обновленной версии с правильным подсчетом страниц? Я тоже заметил баг, если pagesTotal = 8 и pagesSpan = 5

    • radik:

      Пока обновлений не выходило, на данный момент загружен работой и нет времени исправлять баги.

      • frvade:

        Я исправил ошибку для себя, там неправильно высчитывалось percentFromLeft. Если нужно — готов прислать

        • radik:

          Присылайте, и я выложу исправленный вариант у себя в блоге, что бы все могли пользоваться корректным вариантом плагина.

          • frvade:

            На тот e-mail, что указан в копирайте в плагине?

          • radik:

            Если честно, я не нашел ни в одном файле того что бы я указывал email в копирайте … ну это не суть вот можете отправить сюда novichkovsergey<

  2. Макс:

    Подскажите. А можно инструкцию как его на DLE 9.4 поставить?

    • radik:

      Конечно можно я думаю в этом ничего сложного нет, лично с DLE я не знаком но могу предположить что для того что бы его установить на DLE нужно подправить шаблон отвечающий за вывод пагинатора.

  3. Николай:

    С jQuery 1.7 косяк появился, если установить clickHandler, например:

    clickHandler:function(page){
    alert(page);
    }

    В результате показывает два алерта первый то что должно быть, а второй NAN.

    • radik:

      Данный плагин с jQuery 1.7 не тестировался. Но спасибо за сообщение об ошибке, в будущем релизе обязательно протестирую и исправлю все ошибки.

  4. Николай:

    Сделай что бы можно было добавить атрибут(ы) ссылкам, у меня например ссылки такого вида: link

    P.S пробовал clickHandler — но он работает не так как написано, он срабатывает при загрузки страницы, а не при клике на ссылки.

    • Николай:

      Ах, извиняюсь не так юзал функцию, но всё равно атрибут не помешает.

    • Николай:

      И ещё, сделай определение, если страница «Первая», то пусть ссылку делает неактивной, так же и с посл, пред, след.

  5. Вы бы выложили этот плагин в репозитарий WordPress, чтобы он мог нормально обновляться…

  6. Сергей:

    pagesTotal : 12,
    pagesSpan : 10,
    pageCurrent : 11,

    При таком раскладе 12 страница не показывается.

    • radik:

      Спасибо за информацию, обязательно исправлю эту ошибку в будущих версиях плагина.

      • Сергей:

        А нельзя ли бакфиксик выпустить? Просто я смотрю на промежутки между версиями и опасаюсь, что последняя страница еще не скоро покажется :)

        • radik:

          Конечно можно и даже нужно, постараюсь сделать это в ближайшее время, как только появится чуть чуть свободного времени.

        • m157y:

          Поскольку ответа от автора я так и не увидел, а боевые проекты начали переходить на jQuery 1.7.1, то наткнулся на данную проблему. Лечится крайне просто, откройте файл плагина, найдите:
          a[rel!=""]
          и замените на:
          a[rel]
          В коде это найдется дважды.

  7. Bushido:

    Отличный плагин, но вот GPL-лицензия… Так что мимо меня…

  8. Elric:

    Your story was relaly informative, thanks!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Powered by Sweet Captcha
Подтвердите своё реальное существование,
Положите открытку в конверт
  • captcha
  • captcha
  • captcha
  • captcha