2012-04-12 75 views
2

我目前正在構建一個使用多個flexsliders的網站。這個概念是,當用戶點擊一個特定的按鈕時,它會顯示一個帶有與按鈕相關的特色內容的flexslider,這些都非常簡單。在元素上重置flexslider點擊

我現在遇到的問題是,flexsliders點擊按鈕時觸發,但是無論何時用戶單擊不同的按鈕,滑塊不會重置。

我想嘗試使滑塊重置爲在每次按鈕單擊時滑動0。我嘗試過使用.stop()和插件中的一些回調函數,但我還沒有運氣。想知道其他人是否曾經遇到過這個問題? (並贏得..)

在footer.php的代碼是目前非常標準的問題:

$('.button').click(function() { 
    $('.flexslider').flexslider({ 
     controlNav: true, 
     directionNav: false, 
     slideToStart: 0, 
     pauseOnHover: true, 
    }); 
}); 

回答

0

認爲,答案可能在於開始回調函數。嘗試是這樣的(未經測試)

$('.button').click(function() { 
    $('.flexslider').flexslider({ 
     controlNav: true, 
     directionNav: false, 
     slideToStart: 0, 
     pauseOnHover: true, 
     start: function(slider) { 
      if (slider.currentSlide != 0) { 
       slider.flexAnimate(0)//move the slider to the first slide (Unless the slider is also already on the first slide); 
      } 
     } 
    }); 
}); 
0

使用新的API在行1056 flexslider像 'startAt:0,
//整數:滑塊應該開始的幻燈片。數組符號(0 =第一張幻燈片)'

3

我知道這個問題發佈已經很久了,但它可能對某人有幫助。

我實際上面臨同樣的問題。之後,我周圍的一些戳設法得到它的工作使用下面的代碼:

// Catch the flexslider context 
var slider = $(".flexslider").data("flexslider"); 

// Unset the animating flag so we can move back to the first slide quickly  
slider.animating = false; 

// Move to the first slide and stop the slideshow there 
slider.flexAnimate(0, true, true); 

如果你想在第一滑動返回,但不希望動畫停止,只是slider.flexAnimate(0);

替換最後一行

我相信slider.stop()方法不會取消設置animating標誌。在我看來它應該,因爲這個標誌在flexAnimate()函數中用來檢查是否實際滑動。如果該標誌設置爲false,則flexAnimate()函數將突然返回。