Jquery Slider и Toggle - PullRequest
       47

Jquery Slider и Toggle

1 голос
/ 27 августа 2009

У меня есть слайд-шоу, расположенное по адресу staging.asla.org /urablesites / primary.html , в котором используется плагин easySlider, а также функция jQuery Toggle.

В настоящее время при навигации по слайд-шоу описание остается либо показанным, либо скрытым. Я хотел бы, чтобы навигация по слайд-шоу управляла функцией переключения в том случае, если при нажатии следующей кнопки, если отображается описание, я бы хотел, чтобы она скользила вниз, а затем снова поднималась, когда переходил к следующему слайду.

Это выполнимо?

Спасибо!

Ответы [ 2 ]

1 голос
/ 27 августа 2009

Вы можете попробовать это ... это не так красиво, но это работает. Добавьте его в свой $ (документ) .ready (function () {

$("#nextBtn,#prevBtn").live('click',function(){
 if ($('.block').css('display') != 'none') {
  $(".block").slideToggle().slideToggle();   
 }
})

Вместо этого оператора if может быть удобнее использовать:

if ($('.block').is(':visible')) {...}
0 голосов
/ 27 августа 2009

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

Возможно, вам придется изменить ваш плагин. Но сначала измените ваш установочный код на что-то вроде этого, передавая тизер в качестве опции:

    var options = {
        teaser: $("#slider li .block")
    };

Нет, чтобы изменить плагин. Это почти работает, но, вероятно, можно написать немного лучше.

    $("#slider").easySlider(options);

        $("a", "#" + options.nextId).click(function() {
            if (options.teaser) {
                options.teaser.slideToggle();
            }
            animate("next");
            if (t >= ts) $(this).fadeOut();
            $("a", "#" + options.prevId).fadeIn();
            if (options.teaser) {
                options.teaser.slideToggle();
            }
        });

Вам также потребуется изменить обработчик prevId.

Кроме того, чтобы сделать это лучше, поместите в функцию следующие строки кода:

            animate("next");
            if (t >= ts) $(this).fadeOut();
            $("a", "#" + options.prevId).fadeIn();
            if (options.teaser) {
                options.teaser.slideToggle();
            }

И вызвать его из анонимной функции в первом слайде, что-то вроде этого:

            if (options.teaser) {
                options.teaser.slideToggle(function(){myNewFunc();});
            }
            else{
                myNewFunc();
            }

Возможно, вам придется сделать что-то эквивалентное из fadeOut () / fadeIn ()

Пьеса, посмотри, что ты думаешь.

...