2016-04-19 134 views
0

修改我的問題並確定希望有人可以提供幫助。我設置了滑動滑塊。我也使用Foundation Zurb的「標籤」功能,因此打開一個頁面,頂部有用於導航的標籤。由於整個頁面加載,即使人們沒有看到該標籤,並且在圖像本身加載完畢之前,由初始頁面加載(例如滑塊)觸發的任何內容都會開始運行。我需要的是滑塊通過幻燈片集開始自動旋轉,並在完成一個循環後停在第一張幻燈片上。滑塊本身正在工作 - 這是我不知道該怎麼做的初始啓動功能。我希望有一些方法可以在實際滑塊的函數調用中做到這一點,但我只是不知道要使用什麼JavaScript函數。滑動滑塊輪播在頁面加載之前啓動

現在我的函數調用滑塊如下。但是當用戶點擊標籤頁時,它從幻燈片1開始,但幻燈片從不顯示,因爲在某人移動到該頁面後,它仍然嘗試加載圖像。然後打開第2張幻燈片,並通過瀏覽剩餘的幻燈片並返回到第2張幻燈片並停止正確完成。

<script type="text/javascript"> 
var item_length = $('.slide > div').length - 1; 
var slider = $('.slide').slick({ 
autoplay: true, 
autoplaySpeed: 5000, 
dots: true, 
infinite: false, 
speed: 2000, 
fade: true, 
slide: 'div', 
onAfterChange: function(){ 
//check the length of total items in .slide container 
//if that number is the same with the number of the last slider 
//Then pause the slider 
if(item_length == slider.slickCurrentSlide()){ 
//this should do the same thing -> slider.slickPause(); 
slider.slickSetOption("autoplay",false,false) 
}; 
} 
}); 
</script> 
+0

請提供一個小提琴或您的代碼,這樣我們可以更好地理解。 – Bhumika107

+0

以上的幫助嗎?我也編輯了一下我的問題,因爲我覺得我不太清楚。 – SBradford

回答

0

嘗試在load函數中添加你的腳本jQuery的函數。此回調函數僅在DOM準備就緒並且所有資源已加載後才執行。

<script type = "text/javascript"> 
$(window).load(function() { 
    var item_length = $('.slide > div').length - 1; 
    var slider = $('.slide').slick({ 
     autoplay: true, 
     autoplaySpeed: 5000, 
     dots: true, 
     infinite: false, 
     speed: 2000, 
     fade: true, 
     slide: 'div', 
     onAfterChange: function() { 
      //check the length of total items in .slide container 
      //if that number is the same with the number of the last slider 
      //Then pause the slider 
      if (item_length == slider.slickCurrentSlide()) { 
       //this should do the same thing -> slider.slickPause(); 
       slider.slickSetOption("autoplay", false, false) 
      }; 
     } 
    }); 
}); 
</script> 
+0

行爲沒有變化。我想,但不知道如何測試,滑塊正在等待頁面加載,但有些情況會導致延遲,直到第二個「點」變爲活動狀態。當點擊滑塊將要顯示的標籤時,只有點而不是圖像可見。第一個點是「活動」,然後第二個點變爲「活動」,只有在這一點,圖像變得可見。我希望我知道如何弄清楚延遲期間發生的事情。不過謝謝你的這個功能。這是更好的編碼結構。 – SBradford

+0

是否可以重新初始化函數?如果有人點擊該標籤,我是否可以捕獲該類別ID並導致重新啓動#1上的幻燈片,然後暫停?我只是不知道爲什麼圖像沒有加載。似乎加載函數可以解決這個問題。 – SBradford

+0

是的,你需要先unslick(銷燬)插件 - '$('。slide')。slick('unslick');'然後再次初始化滑動滑塊。 – Bhumika107