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).

Демо версия.

jQuery Paginator 3000 +: 34 комментария

  1. Здравствуйте!

    Во первых, большое спасибо автору за данную реализацию пагинатора, с лёгкостью прикрутил его к Joomla в виде плагина.

    Ниже была описана проблема — «Я тоже заметил баг, если pagesTotal = 8 и pagesSpan = 5», предположительно связанная с вычислением percentFromLeft. По моим наблюдениям баг проявляется не только с обозначенными цифрами, но и с другими вариациями количества страниц. Подскажите, пожалуйста, как это исправить, если у Вас нет возможности выложить исправленную версию.

    1. День добрый. К сожалению как исправить не знаю, не разбирался с проблемой т.к. нет времени. В любом случае, проект есть на github, если узнаете в чем разберетесь в чем проблема делайте pull request и внесем ваши изменения в проект. Спасибо.

  2. Hello! This paginator is very amazing! Its the best and the most complet I have seen until now.

    But,… I’m trying use it, charging dates from mysql inside a but I cannot see the first one of every page! I lost the first in every page. Why? I woud like some one help me.

    Thanks!

  3. Спасибо, очень удобная вещь. Если проект еще жив, подскажите пожалуйста.
    pageCurrent — это я прописываю номер активной страницы, как сделать отображение именно текущей страницы. Если пользователь зашел на страницу сайта page=30 или любую другую, то хотелось бы чтобы он видел номер текущей страницы, а не pageCurrent : 1, или я недопонял настройки?

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

  4. Как его прикрутить к WP? С пагинатором 3000 все получилось почти без проблем, этот же ***нехорошее слово*** не появляется и все. Я уже голову сломал и попросту потерял на это надежду….

    1. Практически аналогичным образом, только не забудьте перед его подключением подключить jQuery на страницу.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      1. Поддерживаю комментарий выше. Добавьте, пожалуйста, деактивацию текста «Первая», «Последняя», если выбрана первая или последняя страница
        Спасибо!

        1. Здравствуйте, учту ваше пожелание при переработке плагина … как раз думал на праздниках переделать его для новых версий jQuery.

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

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

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

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

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

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

      1. Наследование лицензии в случае модификации исходного кода, то есть модифицированный или объединенный с другим код в результате так же должен быть выпущен под лицензией GNU GPL, следовательно, быть доступным для модификации любым желающим.

Добавить комментарий для radik Отменить ответ

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