2012-11-02 23 views
18

का निश्चित आकार मैं एपीआई से अलग-अलग आकारों की उत्पाद छवियों को खींचने के लिए फ्लेक्सस्लाइडर का उपयोग कर रहा हूं। मैं उन्हें फ्लेक्सस्लाइडर के <ul> में फेंक रहा हूं, लेकिन ये अलग-अलग छवि आकार अच्छी तरह से नहीं खेलते हैं। फ्लेक्सस्लाइडर अच्छी तरह से एनिमेट करता है जब छवियों की अलग-अलग ऊंचाई होती है, लेकिन मैं अपने लेआउट में फिट करने के लिए फ्लेक्सस्लाइडर की निश्चित ऊंचाई और चौड़ाई रखना चाहता हूं। मैंने पूरी चीज को एक निश्चित आकार <div> में डालने का प्रयास किया है, लेकिन फ्लेक्सस्लाइडर इसे पूरी तरह से अनदेखा करता है और बाकी लेआउट में बहता है। क्या फिट करने के लिए छवियों का आकार बदलने का कोई तरीका है ताकि फ्लेक्सस्लाइडर का आकार बदल न जाए?फ्लेक्सस्लाइडर

+0

आप अतिप्रवाह जोड़ने की कोशिश की है: div करने के लिए छिपा हुआ आपने जोड़ा? – coopersita

उत्तर

35

मान लें कि आप 200px द्वारा 200px का निश्चित आकार चाहते थे। flexslider.css फ़ाइल में निम्न चयनकर्ताओं को इन गुणों जोड़ें और आप जाने के लिए अच्छा होना चाहिए:

.flexslider { 
    width: 200px; 
    height: 200px; 
} 

.flexslider .slides img { 
    width: 200px; 
    height: 200px; 
} 

आशा इस मदद करता है! नीचे के रूप में, के साथ अलग-अलग आकार के साथ दो स्लाइडर है विशिष्ट div की शैली विकल्प के साथ

+1

यह अच्छी तरह से काम करता प्रतीत होता है, लेकिन गैर स्क्वायर छवियां विकृत हो सकती हैं। विरूपण के बिना उस वर्ग को स्वचालित रूप से फिट करने के लिए छवियों का आकार बदलने का कोई तरीका है? –

+0

आपने निर्दिष्ट किया है कि आप एक निश्चित ऊंचाई और चौड़ाई चाहते थे ताकि फ्लेक्सस्लाइडर का आकार बदल न जाए। विभिन्न अनुपात के साथ छवियों को समायोजित करने के लिए, फ्लेक्सस्लाइडर को नई छवि को समायोजित करने के लिए अपने आयामों को बदलना होगा। आपके द्वारा दिए गए कोड को आपके लेआउट में फिट करने के लिए एक निश्चित आकार में बदला जा सकता है (उदा: 960 x 540) लेकिन यह प्रत्येक छवियों के लिए एक ही निश्चित आकार होने पर निर्भर है। क्या इस समस्या को ठीक करने के लिए आप एक फोटो संपादक में अपनी छवियों को फिर से फसल और आकार बदल सकते हैं? –

+0

मैं इन मिश्रित छवियों को एक एपीआई से खींच रहा हूं, इसलिए मैं उन्हें फ़ोटोशॉप या उसके जैसा कुछ भी नहीं बदल सकता। क्षमा करें मैं अस्पष्ट था:/ –

0

सेट का आकार:

<div class="flexcontainer"> 
    <div id="first-slider" class="flexslider" style:"width:100px"> 
     <ul class="slides"> 
     ... 
     </ul> 
    </div> 
    <div id="second-slider" class="flexslider" style:"width:200px"> 
     <ul class="slides"> 
     ... 
     </ul> 
    </div> 
</div> 
+0

गतिशील ऊंचाई के बारे में क्या? – mbb

+3

यदि प्रत्येक स्लाइड की अपनी आईडी है तो बेहतर है कि इनलाइन सीएसएस का उपयोग न करें। – cfx

4

वर्ग ".flex-व्यूपोर्ट" के साथ तत्व स्लाइड के कंटेनर है , वह तत्व सेट में लम्बे छवि पर अपनी ऊंचाई को अनुकूलित करता है, यह चाल सभी छवियों की ऊंचाई को 0 पर सेट कर देती है, जो उस मौजूदा स्लाइड में है जो ली तत्व के अंदर है। "फ्लेक्स-सक्रिय-स्लाइड" श्रेणी के साथ है फ्लेक्सस्लाइडर स्क्रिप्ट टॉगल करता है जब स्लाइड्स एक्सचेंज पोजीशन, इस चाल के बारे में एकमात्र बुरी चीज यह है कि नई स्थिति में नई स्लाइड डालने के बाद कक्षा का टॉगल होता है तो एक स्टटर होता है, लेकिन आप कुछ जावास्क्रिप्ट बाइंडिंग का उपयोग करके इसका सामना कर सकते हैं स्लाइड टॉग ट्रिगर करने वाले एक ही ईवेंट में कुछ टॉगल क्लास, सहायक होने में सहायता करें।

.flex-viewport li:not(.flex-active-slide) img{ 

height: 0 !important; 
} 
+0

यह सुनिश्चित नहीं है कि यह किस संस्करण से संबंधित है, लेकिन वर्तमान में मुझे फ्लेक्स-व्यूपोर्ट क्लास दिखाई नहीं दे रहा है, इसलिए बस इसे अपने लिस के लिए जो भी रैपर है उसे जोड़ें। मेरा स्लाइड स्लाइड (डिफ़ॉल्ट) है लेकिन इसे कॉन्फ़िगर में ओवरराइट किया जा सकता है। – Evan

1

निकालें लिपि के माध्यम से चौड़ाई

smoothHeight: true, 

से

jQuery('#slider').flexslider({ 
      animation: "slide", 
      controlNav: false, 
      animationLoop: false, 
      prevText: "",   
        nextText: "", 
      slideshow: false, 
        smoothHeight: true, 
        animateHeight: false, 
      sync: "#carousel", 
      start: function(){ 
       jQuery('#slider ul.slides img').show(); 
      }, 
      }); 
1

बदलें कहना होने के लिए अपने चौड़ाई 400

$('.flex_up').flexslider({ 
    animation: "slide", 
    animationLoop: false, 
    itemWidth: 400, 
    itemMargin: 5, 
});