2013-06-18 66 views
0

我正在添加一個class .flexslider圍繞包含圖像的li標記的div,當窗口小於767px時,我的函數添加它。滑塊A僅在調整大小時才起作用,而不起作用。當屏幕滾動大於767像素時,我將刪除.flexslider類,但滑塊仍然會啓動。重新調整.flexslider調整大小

function bannerSlider() { 
    "use strict"; 
     if ($(window).width() < 767) {    
      $("#activate-slider").addClass('flexslider'); 
      $("#activate-slider > ul").addClass('slides'); 
     } else if ($Query(window).width() > 767) {  
      $("#activate-slider").removeClass('flexslider'); 
      $("#activate-slider > ul").removeClass('slides'); 
     } 

    } 

當窗口是767px以上的HTML代碼如下所示

 <div id="activate-slider"> 
      <ul> 
      <li>myimage</li> 
      <li>myimage</li> 
      </ul> 
     </div> 

當窗口是767px以下的HTML代碼如下所示

 <div id="activate-slider" class="flexslider"> 
      <ul class="slides"> 
      <li>myimage</li> 
      <li>myimage</li> 
      </ul> 
     </div> 

快速小結,希望如果窗口(移動設備)屏幕小於767px,不僅僅是調整大小,我可以查看我的代碼並找到我最有可能出錯的地方,主要問題是當窗口返回時DEACTIVATING滑塊ABOV E 767px。

我跑我裏面window.load 嘗試的document.ready window.resize &內部功能邏輯上我能看到它沒有運行,我想的方式,但我想不出寫什麼作出功能正常。

回答

1

你試過暫停/彈奏flexslider嗎?

function bannerSlider() { 
    "use strict"; 
    if ($(window).width() <= 767) {    

     $("#activate-slider").addClass('flexslider'); 
     $("#activate-slider > ul").addClass('slides'); 

     if ($('.flexslider').flexslider('animating') == false) { 
      $('.flexslider').flexslider('play') ; 
     } 

    } 
    else if ($Query(window).width() > 767) {  

     if ($('.flexslider').flexslider('animating') == true) { 
      $('.flexslider').flexslider('pause') ; 
     } 

     $("#activate-slider").removeClass('flexslider'); 
     $("#activate-slider > ul").removeClass('slides'); 
    } 
} 
0

find-> slider.doMath大約950-960線在無精縮版本flexslider的JS

然後添加以下

slider.w前maxItems和 代碼 snipet

var w = $(window).width(); 
 
       var h = $(window).height(); 
 
       console.log("w " + w); 
 
       console.log("h " + h); 
 
       if (w > 1025) { 
 
        maxItems = slider.vars.maxItems; 
 
       } 
 
       else if (w = 1020) { 
 
        maxItems = 3; 
 
       } 
 
       else if (w >= 568) { 
 
        maxItems = 2; 
 
       } 
 
       else if (568 > w) { 
 
        maxItems = 1; 
 
       }