试着在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 : "";
}
});
感谢您的帮助。
答案 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
回调。