2013-06-03 11 views
5

है, यदि मैं स्लाइडर में केवल 1 स्लाइड दिखा रहा हूं, और वास्तव में स्लाइड करने के लिए कुछ भी नहीं है तो पेजर को "अक्षम" श्रेणी जोड़ने की कोशिश कर रहा हूं।bagerslider में केवल 1 स्लाइड

मैं एक सूची नहीं, एक सूची स्लाइडिंग कर रहा हूँ।

यह सिर्फ एक बुनियादी div है:

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

मैं पेजर नहीं दिखाने के लिए अगर वहाँ केवल 1 स्लाइड दिखाने चाहते हैं:

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

यहाँ स्लाइडर के लिए jQuery है।

किसी भी मदद के लिए धन्यवाद!

जस्टिन

उत्तर

16

मैं एक ही परेशानी का सामना करना पड़ा और यहां मेरे समाधान है: हम गिनती करना चाहिए कि कितने बच्चे तत्वों हम .bxslider2 ब्लॉक

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

के तहत है और यदि वहाँ केवल एक ही है, तो विकल्प सेट 'झूठी' के लिए, अन्यथा 'सच' करने के लिए।

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

आशा है कि इससे मदद मिलेगी।

+0

सबसे अच्छा समाधान नहीं है (और मानक यह '.bxslider> li' होगा), लेकिन यह चाल है, धन्यवाद – Ruben

+0

मैंने ऑटो स्क्रॉलिंग को अक्षम करने के लिए इसका उपयोग किया जब केवल 1 स्लाइड – Ruben

+0

यह काम नहीं है, अगर आपके पास है एक ही पृष्ठ पर एकाधिक स्लाइडर तत्व और उनमें से सभी एक ही चयनकर्ता द्वारा बनाए जाते हैं। तीन bxslider $ ('। bxslider') दिया गया। bxSlider(); पहले दो में 5 तत्व होते हैं, केवल तीसरे 3. फिर $ ("। Bxslider> .item")। लंबाई 13 तत्वों की कुल गणना वापस कर देगी। –

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; 
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); 
}); 
3

मैं इसे प्राप्त करने के लिए सीएसएस का उपयोग करता हूं।

.bx-pager-item:first-of-type:last-of-type { 
    display: none 
} 
1

यदि आपके पास पृष्ठ पर एक से अधिक bxslider है तो यहां एक समाधान है।

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

प्रत्येक स्लाइडर के माध्यम से जाता है और पता चलता है कि इसमें केवल एक ली है या नहीं। यदि ऐसा है, तो bxSlider पर दिए गए ऑब्जेक्ट पर pager: false जोड़ें।

संबंधित मुद्दे