Добавьте подписи к вложенному циклу Jquery - PullRequest
0 голосов
/ 22 августа 2011

У меня есть галерея, построенная из вложенных слайд-шоу с использованием плагина цикла jquery.Я хочу, чтобы подписи на основе текста alt отображались на каждом изображении в слайд-шоу, но я не знаю, где в сценарии мне нужно было бы это активировать.Если бы кто-нибудь мог помочь, я был бы очень благодарен.Спасибо!

//stop subgal initially
            $('#hovergal .subgal').cycle({
                fx: 'fade',
                timeout: 10000,
                slideExpr: 'img'
            }).cycle('pause');

            //start subgal on click
            $('#hovergal').cycle({
                fx: 'scrollUp',
                speed: 300,
                timeout: 0,
                slideExpr: '>div.subgal',
                pager: 1,
                pagerAnchorBuilder: function(i) {
                    return $('aside.sgnav a:eq(' + i + ')');
                },
                after: function(curr,next,opts) {
                    var cmd = opts.currSlide == 1 ? 'resume' : 'pause';
                    $('div.subgal').cycle(cmd);
                }
            });
    } else {//else, if there's only one gallery to be shown

        $('#hovergal .subgal').cycle({
            fx: 'fade',
            timeout: 3000,
            slideExpr: 'img'
        }); 
    }

Ответы [ 2 ]

0 голосов
/ 16 января 2012

Я думаю, что это не имеет ничего общего с плагином цикла.Если вы хорошо разбираетесь с этими строками, вам просто нужно добавить функцию в $ (document) .ready (function () {}, что-то вроде

$('.slideshow img').each(function(){
    var el = $(this);
    var alttext = el.attr('alt');
    el.after('<span>'+alttext+'</span>');
});

, это добавляет ваш альтернативный текст сразу после изображения иВы можете позиционировать его абсолютно с помощью css. Возможно, вам нужно адаптировать его к вашей структуре, может быть не img и «el.after», а

$('.slideshow img').each(function(){
    var el = $(this);
    var parentdiv = el.parents('div:eq(0)');
    var alttext = el.attr('alt');
    parentdiv.append('<span>'+alttext+'</span>');
});

или около того. Рабочий пример вы можете найти здесь (мой пост с сегодняшнего дня) Jquery Cycle - несколько вложенных слайд-шоу и цикл, заканчивающийся или здесь http://ferienhaus -fischland-ahrenshoop.de / mini4 / позже, после завершения этого проекта необходимо удалитьmini4 / больше вопросов, добро пожаловать, greetinx, Michael

0 голосов
/ 23 августа 2011

Я полагаю, что все застряли так же, как и я, поскольку я безуспешно пытался найти ответ на этот вопрос в течение двух недель. Я отказался от попыток решить его в параметрах Jquery.Cycle и вместо этого переключил мои галереи на построение из списков, а не из div, где каждый элемент списка содержит контейнер с заголовками, который извлекает свое содержимое из тега alt. После этого мне нужно было изменить slideExpr для списка и вуаля.

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

Может быть, кто-нибудь когда-нибудь придет с реальным ответом на эту проблему. А пока я оставляю это здесь для тех, кто может столкнуться с тем же джемом.

...