2013-06-18 65 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; 
 
       }