$(selector).flexslider({before:function()})问题 - 跳过第一张幻灯片

时间:2015-10-21 16:49:31

标签: javascript jquery flexslider

试着在flexslider上重新定位字幕,我想我能做到: var myP = $('p.flex-caption').detach().appendTo(x); 其中x将是我希望字幕出现的任何元素。 在实践中它工作 ok - 我得到了所有字幕的转储,而不仅仅是与活动幻灯片相关联的字幕,但这可能只是一个css的事情 - 更大的问题是这不会发生直到第二张幻灯片。我在flexslider.js里面(在下面粘贴)调用$(选择器).flexslider里面和'之前'里面 - 我猜这个问题与事情的加载方式有关。在另一种方法中,我没有使用detach()来关闭p并重新定位它,而是尝试创建一个元素 - captionDiv - 其中另一个创建的元素 - 标题 - 将填充从查询滑块返回的html .slides [slider.animatingTo]但是,第一个标题不会出现。

$(selector).flexslider( {
        smoothHeight: options.h_responsive,
             animation: options.animation,
             direction: options.direction,
             slideshow: options.slideshow,
             slideshowSpeed: Number( options.cycle_speed ) * 1000,
             animationSpeed: Number( options.animation_speed ) * 1000,
             pauseOnHover: options.pause_on_hover,
             controlNav: options.control_nav,
             directionNav: options.direction_nav,
             keyboard: options.keyboard_nav,
             touch: options.touch_nav,
             before: function( slider ) {
               slider.removeClass('loading');
               //added for outside caption
               //var sgmCaption = $('p.flex-caption');
               var tnh = $('div.flex-thumbnail-holder');
               //sgmCaption.detach().appendTo(tnh);
               if (!slider.captionDiv) {
                   slider.captionDiv = document.createElement("div");
                   slider.captionDiv.setAttribute("class", $(slider)[0].getAttribute("id") + "-caption flex-outside-caption");
                   //$(slider.captionDiv).insertAfter($(slider));
                   $(slider.captionDiv).insertAfter($(tnh));
               }

               var caption = slider.slides[slider.animatingTo].querySelector('.flex-caption');
               slider.captionDiv.innerHTML = caption ? caption.innerHTML : "";

             }

           });

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

每份文件:

$(selector).flexslider({
    // Callback: function(slider) - Fires when the slider loads the first slide
    start: function(){},
    // Callback: function(slider) - Fires asynchronously with each slider animation
    before: function(){}
});
仅当幻灯片之间的动画开始时才会触发

before回调。您需要自己准备第一张幻灯片的标题 - 连接后或start回调。