jQuery.Cycle - использовать два разных эффекта для одного контейнера - PullRequest
7 голосов
/ 08 июля 2010

В настоящее время я использую jQuery.Cycle для циклического перебора нескольких дочерних тегов <div>. Тем не менее, я хочу, чтобы по умолчанию цикл fx был fade, а когда я нажимаю на селекторы next или prev, я хочу, чтобы цикл fx временно менялся на scrollRight или scrollLeft в зависимости от нажатого селектора. .

Возможно ли это?

jQuery-код, если необходимо:

$('#banner_content').cycle({
    fx: 'fade', // choose your transition type, ex: fade, scrollUp, shuffle, etc...
    timeout: 6500,
    speed: 2000,
    next: $("#right_arrow a"),
    prev: $("#left_arrow a"),
});

1 Ответ

11 голосов
/ 19 июля 2010

Хорошо, я добавил свой вопрос на jQuery Forum , и создатель ответил следующим: answer .

Вот мой код, который я разработал для этого:

var slideIndex = 0;
var nextIndex = 0;
var prevIndex = 0;

$('#banner_content').cycle({
    fx: 'fade',//fx: 'scrollHorz', // choose your transition type, ex: fade, scrollUp, shuffle, etc...
    timeout: 8000,
    speed: 1000,
    easingIn:20,
    easingOut:40,
    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;
        }
    }
}); 

$("div.left_arrow a").click(function () {
    $('#banner_content').cycle(nextIndex, "scrollRight");
});

$("div.right_arrow a").click(function () {
    $('#banner_content').cycle(prevIndex, "scrollLeft");
});
...