2012-03-02 9 views
5

मैं एक लंबवत कैरोसेल बनाने के लिए carouFredSel का उपयोग कर रहा हूं। सबकुछ बढ़िया काम करता है, सिवाय इसके कि अगर मैं छुपाए जाने के बजाए आंशिक वस्तुओं को नीचे, दिखाया गया, तो दिखाया जाएगा। इस तरह यह उपयोगकर्ताओं को इंगित करेगा कि अतिरिक्त आइटम हैं जिन्हें स्क्रॉल किया जा सकता है।carouFredSel: आंशिक आइटम दिखाएं?

मैं documentation पढ़ रहा हूं, लेकिन अब तक यह नहीं बता सकता कि मैं क्या कर रहा हूं।

Check out the JSFiddle to see what I mean। पृष्ठ पर सबसे अधिक आइटम देखें।

जावास्क्रिप्ट

$("ul").carouFredSel({ 
    direction: "up", 
    align: "top", 
    width: 100, 
    height: "100%", 
    items: { 
     visible: "variable", 
     width: 100, 
     height: "variable" 
    }, 
    scroll: { 
     items: 1, 
     mousewheel: true, 
     easing: "swing", 
     duration: 500 
    }, 
    auto: false, 
    prev: { 
     button: ".prev", 
     key: "up" 
    }, 
    next: { 
     button: ".next", 
     key: "down" 
    } 
});​ 
+0

ऐसा लगता है कि इस प्रकार के कैरोसेल के पूरे उद्देश्य को हराया जाता है। अन्य प्लगइन्स की आवश्यकता है कि सभी स्लाइड्स एक ही आकार हों; तो आप अगली स्लाइड का आंशिक दृश्य प्राप्त करने के लिए व्यूपोर्ट आकार को बदल सकते हैं। आपके साथ, यह जानबूझकर इस से बचने के लिए पर्याप्त गतिशील ("स्मार्ट") प्रतीत होता है। और मुझे कोई कॉन्फ़िगर करने योग्य विकल्प नहीं दिखता है जो आपको वही करने की अनुमति देता है जो आप चाहते हैं। अगर आप अगले स्लाइड को आंशिक रूप से प्रकट करने के विकल्प चाहते हैं तो jCarousel या jCarousel लाइट आज़माएं। नोट, पूर्व में एक गोलाकार बग है। – Sparky

+0

यह एक अच्छा मुद्दा है। और कुछ मामलों में, यह वांछनीय होगा। इस मामले में, मुझे लगता है कि यह अवांछनीय है। और मैं एक और प्लगइन का उपयोग करूंगा, लेकिन यह प्लगइन कई अन्य चीजों को वास्तव में अच्छी तरह से संभालता है जो दूसरों को नहीं करते हैं। – colindunn

+0

मैं विकल्पों पर फिर से देख रहा हूं ... मुझे नहीं लगता कि यह प्लगइन के साथ यह संभव है। और यह निश्चित रूप से बहुत मुश्किल हो जाएगा यदि सभी स्लाइड अलग-अलग आकार हैं ... इसका मतलब है कि व्यूपोर्ट आकार को लगातार बदलना होगा। फ्रेड गतिशील रूप से व्यूपोर्ट को बदलता है लेकिन अन्य प्लगइन्स नहीं होंगे। मुझे लगता है कि आपकी सबसे अच्छी शर्त सभी स्लाइड्स को एक ही आकार में बनाना होगा, क्योंकि आपका लक्ष्य उस शुरुआती बिंदु से थोड़ा अधिक प्राप्य है। – Sparky

उत्तर

4

यह एक हैक का एक सा है, लेकिन यह काम करता है। स्क्रोलर की ऊंचाई सेट करें (इस मामले में, ul) 150% और मूल तत्व (इस मामले में, body) overflow: hidden पर सेट करें। अब नीचे सबसे अधिक तत्व स्क्रीन बंद है।

जावास्क्रिप्ट

$("ul").carouFredSel({ 
    height: "150%" 
}); 

सीएसएस

body { 
    overflow: hidden; 
    } 
+0

चालाक। लेकिन विभिन्न आकार स्लाइड के साथ, क्या आपको असंगत परिणाम नहीं मिलेगा? – Sparky

+0

ऊंचाइयों में उतना भिन्नता नहीं है, और यदि आवश्यकता हो तो मैं हमेशा 'उल' की ऊंचाई को 200% तक बढ़ा सकता हूं। – colindunn

+0

हम्म, इस तरह, कैरोसेल में प्रवेश नहीं हो सकता है क्योंकि ऐसा लगता है कि वास्तव में नहीं होने पर इसकी छवियों के लिए पर्याप्त जगह है .. कम से कम यह मेरे मामले में होता है। आप न्यूनतम विकल्प के साथ इसे "ठीक" कर सकते हैं। लेकिन यह आदर्श नहीं है अगर आपके पास केवल कुछ छवियां हैं। मैं अभी भी यह हल करने के लिए देख रहा हूँ। – clime

0

खड़ी हिंडोला में अगले नहीं दिखाई तत्व अंतर से नीचे धक्का दे दिया गया है। मैं वर्तमान में निम्नलिखित समारोह से यह अधिभावी कर रहा हूँ:

function cropCarousel() { 
    var visibleElements = this.triggerHandler("currentVisible"), // show all visible 
    $lastElement = $(visibleElements[visibleElements.length - 1]); // get the last one 

    $lastElement.css('margin-bottom', '30px'); // amend the margin 
}; 

cropCarousel.call($('#your_carousel_id')); 

इसके बारे में नकारात्मक पक्ष यह है आप हिंडोला init पर इस समारोह और पर और घटनाओं नीचे कॉल करने के लिए होगा। लेकिन यह काम करता है;)

1

हा, caroufredsel इसका समर्थन करता है, कोई हैक आवश्यक :))! आप इसे निम्नलिखित विकल्प से प्राप्त कर सकते हैं:

items: { 
    visible: '+1' 
} 

संपादित करें: हालांकि यह किसी समस्या से ग्रस्त है। यदि सभी दृश्य वस्तुओं की संख्या + 1 == सभी वस्तुओं की संख्या, तो कैरोसेल को स्क्रॉल नहीं किया जा सकता है भले ही एक छवि आंशिक रूप से दिखाई दे। आप इस समस्या को उदा। minimum: 1 लेकिन यह हमेशा जाने का कोई तरीका नहीं है (उदाहरण के लिए यदि छवियों की संख्या गतिशील है और आप केवल एक या दो छवियों के दौरान स्क्रॉल हैंडलर दिखाना नहीं चाहते हैं।)।

+0

मैं निश्चित रूप से निश्चित हूं कि यह विकल्प तब उपलब्ध नहीं था जब यह प्रश्न 2012 की शुरुआत में पोस्ट किया गया था। – Sparky

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