GitHub Slider JQuery плагин - PullRequest
       7

GitHub Slider JQuery плагин

10 голосов
/ 24 марта 2011

Новая навигация по дереву Github HTML5 и CSS3 (HTML5 History API) великолепна: https://github.com/blog/760-the-tree-slider

Какой плагин JQuery они используют для создания эффекта скольжения пользовательского интерфейса?Или, может быть, аналогичный (Jquery Slide с загрузкой Ajax)

Спасибо

Ответы [ 3 ]

35 голосов
/ 30 декабря 2011

Я просмотрел их исходный код, и они НЕ используют CSS3 или плагин.Он использует JQuery Animate.И фрагменты кода, которые они дают в блоге Github , являются хорошим началом, но обработчик popstate вводит в заблуждение.Попробуйте вместо этого:

$(window).bind('popstate', function (e) {
    if (e.originalEvent.state && e.originalEvent.state.path) {
        $.get(e.originalEvent.state.path, function(data) {
            $('#slider').slideTo(data);      
        });
        return false;
    }
    return true;
}

Фактическое скольжение использует больше трюков:

  1. set #slider overflow: hidden
  2. получает ширину секции для анимации.
  3. создайте перевод div в два раза больше этой ширины (передача).
  4. скопируйте содержимое исходного div в временный div (текущий).
  5. поместите новое содержимое в другойtemp div (следующий).
  6. помещает текущий и следующий бок о бок в передачу.
  7. удаляет содержимое из исходного div и помещает новый div передачи в (должен выглядеть так же).
  8. анимация передачи div - новый внешний вид завершен.
  9. замена исходного содержимого div новыми данными (выглядит так же, как и в предыдущем шаге).

Вот слайд влево:

$.fn.slideTo = function(data) {
    var width = parseInt($('#slider').css('width'));
    var transfer = $('<div class="transfer"></div>').css({ 'width': (2 * width) + 'px' });
    var current = $('<div class="current"></div>').css({ 'width': width + 'px', 'left': '0', 'float': 'left' }).html($('#slider').html());
    var next = $('<div class="next"></div>').css({ 'width': width + 'px', 'left': width + 'px', 'float': 'left' }).html(data);
    transfer.append(current).append(next);
    $('#slider').html('').append(transfer);
    transfer.animate({ 'margin-left': '-' + width + 'px' }, 300, function () {
        $('#slider').html(data);
    });
}

А вот рабочий пример: Пример слайдера .Нажмите на меню с браузером, который поддерживает историю.Я начал использовать CSS3, но с помощью обратного вызова jquery animate легче определить, когда завершен переход / преобразование.

0 голосов
/ 03 июля 2012

проверь, тебе может понравиться. очень простой слайдер.

https://github.com/Yene-Me/Slider-Menu

0 голосов
/ 20 декабря 2011

Я думаю, это поможет вам.

jquery.sliders

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...