Цикл jQuery: как изменить эффект перехода при запуске слайд-шоу - PullRequest
2 голосов
/ 10 сентября 2010

Я использую опцию before: плагина jQuery Cycle, чтобы определить, движется ли пользователь влево или вправо по слайд-шоу, и я хотел бы соответственно анимировать (scrollLeft, scrollRight).

К сожалению, я не могу найти, как изменить параметры плагина (эффект перехода) во время его работы.

Есть идеи?

Ответы [ 2 ]

5 голосов
/ 11 сентября 2010

Звучит так, как будто вы хотите получить этот эффект: http://jsfiddle.net/zvVcD/

Если это так, вам просто нужно использовать эффект «scrollHorz», а затем определить предыдущий и следующий триггеры, например, так:

$('#s2').cycle({
    fx: 'scrollHorz',
    speed: 'fast',
    timeout: 0,
    next: '#next2',
    prev: '#prev2'
});
4 голосов
/ 19 сентября 2011

Вот более общий подход:

var $cycler = $( ".cycler" ),
    prev = function() { $cycler.cycle( prevIndex, "scrollRight" ); },
    next = function() { $cycler.cycle( nextIndex, "scrollLeft" ); };

    $cycler.cycle({
                     fx:     'scrollLeft',
                     after: function(currSlideElement, nextSlideElement, options) {
                             slideIndex = options.currSlide;
                             nextIndex = slideIndex + 1;
                             prevIndex = slideIndex -1;

                             if (slideIndex == options.slideCount-1) {
                                 nextIndex = 0;
                             }

                             if (slideIndex == 0) {
                                 prevIndex = options.slideCount-1;
                             }
                         }
                 });

    $( ".prev" ).bind( "click", prev );
    $( ".next" ).bind( "click", next );

Вы можете изменить scrollLeft и scrollRight на все, что захотите. Обратите внимание, что я использую классы .prev, .next и .cycler для моей предыдущей кнопки, следующей кнопки и контейнера циклирования соответственно.

...