0
試圖重新定位於flexslider標題,還以爲我可以這樣做: var myP = $('p.flex-caption').detach().appendTo(x);
其中x是任何元素我想要的標題出現後。 實際上它的工作原理ok - 我得到了所有標題的轉儲,而不是僅僅與活動幻燈片相關聯的標題,但這可能只是一個CSS的東西 - 更大的問題是,直到第二張幻燈片纔會發生。我在flexslider.js裏面(粘貼在$(selector).flexslider裏面和'before'裏面)調用了這個 - 我猜這個問題與加載的方式有關。在另一種方法中,我試着創建一個元素 - captionDiv,而不是使用detach()來取代p並重新定位它,而在另一個創建的元素 - 標題中,會使用從查詢滑塊返回的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 : "";
}
});
謝謝你的幫忙。
太棒了!謝謝!我複製代碼並將其放在start()以及before()中;我不確定哪些是首先被調用 - 開始或之前,我應該初始化變量? – user1574371
'start'肯定被稱爲第一個,因爲它在setup(頁面加載?)過程中被調用,而'before'在用戶滑動後被調用。 –