2012-01-28 8 views
6

मैं अपनी वेबसाइट पर jScrollPane स्थापित किया है और यह काम नहीं कर सकते हैं के साथ ठीक से काम नहीं।jScrollPane छिपी सामग्री

मेरी वेबसाइट के रूप में इस काम करता है: मुख्य पृष्ठ से, पृष्ठ डायनामिक jQuery के load() विधि का उपयोग कर लोड किए गए हैं। पेज में लोड होने पर मेरे पास jScrollPane लॉन्च करने के लिए निम्न स्क्रिप्ट है:

$(function(){ 
    $('.scroll-pane').jScrollPane(); 
}); 

जो कहा जाता है। मुझे अब तक कोई समस्या नहीं है। समस्या यह है कि पृष्ठ, शुरुआत में, स्क्रॉलबार की आवश्यकता के लिए पर्याप्त नहीं है। मेरे पास छिपी हुई सामग्री है जो केवल विशिष्ट कार्रवाइयों पर दिखाई देती है (यानी एक बटन पर क्लिक करना एक निश्चित पैराग्राफ की सामग्री दिखाता है), और जब मैं एक छिपे हुए div की सामग्री दिखाने के लिए क्लिक करता हूं, तो स्क्रॉलबार प्रकट नहीं होता है।

मैं भी $('.scroll-pane').jScrollPane(); कॉल करने के लिए के रूप में मैं नई सामग्री (अर्थात घटना है कि छिपा div पर .show() से चलाता में मैं भी $('.scroll-pane').jScrollPane(); कहते हैं) दिखाने लेकिन मैं उस के साथ कोई सफलता या तो था की कोशिश की।

क्या कोई मेरी मदद कर सकता है?

धन्यवाद

संपादित करें:

मैं पेज की संरचना उल्लेख करना भूल गया: मैं एक div जो class="scroll-pane" है और पृष्ठ लोड से भरा हुआ है और यह छोटे छिपा divs तब तक दिखाई देने जब क्लिक करने में शामिल है विशेष क्षेत्रों पर। मैं दिखाए गए div scrollable की सामग्री बनाने के लिए कक्षा स्क्रॉल-फलक के साथ div में स्क्रॉल बार जोड़ना चाहता हूं (अभी सामग्री सामग्री के आकार में रहती है लेकिन यह स्क्रॉल करने योग्य नहीं है क्योंकि कोई jScrollPane स्क्रॉल बार नहीं है दिखाया गया है)।

अद्यतन:

मैं अपने divs की .show() विधि के कॉलबैक में $('.scroll-pane').jScrollPane(); डालने की कोशिश की है और उन divs कि प्रकट करने के लिए class="scroll-pane" डालने की कोशिश की, लेकिन फिर कुछ भी नहीं दिखाया गया है (स्क्रॉल पट्टी प्रकट नहीं होता है और div स्क्रोल करने योग्य नहीं है)।

+0

यदि छुपा सामग्री दिखाते समय स्क्रॉलबार प्रकट नहीं होता है, तो आप स्क्रॉल करने में सक्षम नहीं होंगे। समस्या एचटीएमएल से आनी चाहिए। क्या आपके एचटीएमएल तत्वों में "स्थिति" या "फ्लोट" है जो उन्हें HTML प्रवाह से बाहर कर देता है? – dievardump

+0

वास्तव में नहीं, वे मुख्य सीढ़ी के सापेक्ष, मेरे सीएसएस में एली 'स्थिति: रिश्तेदार' हैं। यह बहुत अजीब है, अगर यह स्क्रॉल नहीं करता है क्योंकि स्क्रॉलबार दिखाई नहीं दे रहा है शायद कुछ प्रकार का सीएसएस मुद्दा है। मैं सीएसएस फ़ाइल को चेक दूंगा (जिसे मैंने आयात किया था + वह जो पहले से था)। – Masiar

उत्तर

19

चेक इस डेमो प्लगइन

http://jscrollpane.kelvinluck.com/invisibles.html

के डेवलपर द्वारा प्रदान जब तत्व पहले दिखाया गया है तो आप बस (पुनः) के लिए है आरंभ Scrollpane (या आप भी autoReinitialise इस्तेमाल कर सकते हैं, तो आपको पसंद है) और इसकी चौड़ाई और ऊंचाई की गणना सही ढंग से की जाएगी।

सभी कि आप की आवश्यकता

$(function(){ 
    $('.scroll-pane').jScrollPane({autoReinitialise: true}); 
}); 

है और मैं सीएसएस दृश्यता संपत्ति बजाय ऑटो reinitialising उपयोग करने के लिए सुझाव है कि प्लगइन

+0

धन्यवाद, मैंने वास्तव में बाद में कोड के उस टुकड़े का उपयोग किया, लेकिन फिर मैंने कुछ अन्य बग की खोज की। वैसे भी धन्यवाद, कि काम किया जाना चाहिए :)। – Masiar

+0

यह काम है अगर .scroll-pane ब्लॉक की ऊंचाई है। क्या होगा यदि इस ब्लॉक में केवल अधिकतम ऊंचाई है? –

+0

@ बोहडन मुझे नहीं लगता कि यह एक समस्या हो सकती है, ऊंचाई और चौड़ाई, आमतौर पर, मूल तत्व के वास्तविक आयामों के आधार पर गणना की जाती है। क्या आप मुझे एक उदाहरण दिखा सकते हैं? – Cheery

1

के हाल के संस्करण हो सकता है। प्रत्येक बार जब आप शो() विधि को कॉल करते हैं, तो जेएसक्रॉलपेन स्वयं को पुनः आरंभ करता है। इसमें समय लगता है और एनीमेशन पर असर पड़ता है।

यदि आप उपयोग करते हैं, कहते हैं, स्लाइड ..() विधियों, तो एनीमेशन ठीक से शुरू होता है, लेकिन स्क्रॉल कंटेनर (और उसके तत्वों) बाद में थोड़ा सा दिखाई देता है, और है कि बुरा लग रहा है।

var wrapper = jQuery('#gallery-album-preview-wrapper'); 
if (wrapper.css("visibility") == "hidden") { 
    wrapper.css("visibility", "visible").css("display", "none"); 
} 
if (wrapper.is(":hidden")) { 
    wrapper.slideDown(1000); 
} else { 
    wrapper.slideUp(1000); 
}