如果bxslider只有1张幻灯片,则隐藏寻呼机

时间:2013-06-03 20:18:10

标签: slider bxslider

我试图添加一个班级"禁用"如果滑块只显示1张幻灯片,则无法实际滑动。

我正在滑动div,而不是列表。

它只是一个基本的div:

<div class="bxslider2">
    <div class="wrap">
        ...
    </div>
</div>

以下是滑块的jquery:

 $('.bxslider2').bxSlider({
   mode: 'horizontal',
   speed: '180',
   pagerType:'full',
   pager:'true',
   captions: false
 });

如果只有1张幻灯片,我想不显示寻呼机。

感谢您的帮助!

贾斯汀

4 个答案:

答案 0 :(得分:17)

我遇到了同样的麻烦,这是我的解决方案:我们应该计算我们在.bxslider2块下有多少子元素

$(".bxslider2>.wrap").length

如果只有一个,则将选项设置为&#39; false&#39;否则设为&#39; true&#39;。

$('.bxslider2').bxSlider({
   mode: 'horizontal',
   speed: '180',
   pagerType:'full',
   pager: ($(".bxslider2>.wrap").length > 1) ? true: false,
   captions: false
 });

希望它会有所帮助。

答案 1 :(得分:1)

如果页面上有多个bxslider,这是一个解决方案。

    $('.bxslider').each(function() {
      var options = {
        mode: 'fade',
      };
      if ($(this).find('li').length === 1) {
        options.pager = false;
      }
      $(this).bxSlider(options);
    });

浏览每个滑块并查找它是否只有一个li。如果是,请将pager: false添加到传递给bxSlider的对象。

答案 2 :(得分:0)

解决这个问题的好方法是重新加载这样的对象 并更改每个项目数量的控件:

    var slideQty = $('.bxslider').bxSlider({
        minSlides: 1,
        maxSlides: 3,
        slideWidth: 110,
        slideMargin: 0,
        adaptiveHeight: true,
        pager: false,
        moveSlides: 1,
        onSlideAfter: function ($slideElement, oldIndex, newIndex) { NextSlide(oldIndex, newIndex); }

    });



    var count = slideQty.getSlideCount();
    if (count < 7) {
        slideQty.reloadSlider({
            controls : false,
            minSlides: 1,
            maxSlides: 3,
            slideWidth: 110,
            slideMargin: 0,
            adaptiveHeight: true,
            pager: false,
            moveSlides: 1,
            onSlideAfter: function ($slideElement, oldIndex, newIndex) { NextSlide(oldIndex, newIndex); }
        });
    }

    return false;

答案 3 :(得分:0)

试试这个对我有用!!

var slider = $('#slider').bxSlider();

$('.bx-next, .bx-prev, .bx-pager a').click(function(){
     // time to wait (in ms)
     var wait = 1000;
     setTimeout(function(){
     slider.startAuto();
  }, wait);
});