2015-10-21 58 views
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 : ""; 

      } 

      }); 

謝謝你的幫忙。

回答

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回撥後。

+0

太棒了!謝謝!我複製代碼並將其放在start()以及before()中;我不確定哪些是首先被調用 - 開始或之前,我應該初始化變量? – user1574371

+0

'start'肯定被稱爲第一個,因爲它在setup(頁面加載?)過程中被調用,而'before'在用戶滑動後被調用。 –

相關問題