2011-12-06 18 views
6

क्या एक div up (इसे बंद करना) स्लाइड करना संभव है लेकिन पूरी तरह से नहीं?एक निश्चित ऊंचाई तक JQuery के साथ स्लाइड अप/डाउन - क्या यह संभव है?

मेरा मतलब है, स्लाइड करें लेकिन उस div को प्रदर्शित करने के लिए थोड़ा छोड़ दें, क्या यह संभव है?

अग्रिम धन्यवाद, मेम

+0

आप माइग्र एचटी सिर्फ ऊंचाई को एनिमेट/बदलना चाहते हैं। –

उत्तर

8

इस तरह कुछ काम कर सकते हैं:


$("#div").toggle(
function(){ 
    $("#div").animate({ height:"500px" }, { queue:false, duration:500 }); 
}, 
function(){ 
    $("#div").animate({ height:"50px" }, { queue:false, duration:500 }); 
}); 
500px के बजाय

यह सिर्फ div के मूल आकार हो सकता है, और 30px आप फिर भी कुछ हो सकता है जब यह छुपाया जाना है तो दिखाना चाहते हैं।

+0

बहुत बहुत धन्यवाद! दो चीजें: 1) हमें मूल div ऊंचाई हमेशा घोषित करनी चाहिए? मैं यह पूछ रहा हूं क्योंकि ... सामग्री के आधार पर ऊंचाई भिन्न हो सकती है। 2) अगर हम चाहते हैं, इसके बाद, उस छोटे से हिस्से को दूर कर दें जिसे हमने अभी एनिमेट किया है, तो यह ठीक रहेगा हाँ? – MEM

+1

यहां एक झुकाव दिखा रहा है कि यदि एक चर में घोषित किया गया है तो यह विभिन्न ऊंचाइयों की अनुमति दे सकता है: http://jsfiddle.net/Skooljester/HdQSX/ और एनीमेशन के बाद बाहर निकलना एक समस्या नहीं होनी चाहिए। –

+0

आपके समय के लिए बहुत बहुत धन्यवाद। बिल्कुल साफ़। ;) – MEM

2

अपनी मूल ऊंचाई पर div खोलने का बेहतर तरीका स्लाइडडाउन() का उपयोग कर रहा है। समस्या यह है कि इस फ़ंक्शन को इसे खोलने से पहले div को छिपाने की आवश्यकता होती है। निम्नलिखित तरीके से एक छोटा सा बदसूरत है लेकिन अच्छी तरह से काम करता है:

$("#test").toggle(
function(){ 
    $("#test").css('height', 'auto').hide().slideDown('fast'); 
}, 
function(){ 
    $("#test").animate({ height:'50px' }, { queue:false, duration:500 }); 
}); 
1

मैं jQuery के animate पद्धति का उपयोग करके यह कभी कभी कुछ ब्राउज़रों में गाड़ी है, क्योंकि सलाह नहीं देते। सीएसएस संक्रमण के साथ स्लाइड को एनिमेट करें एक बेहतर विकल्प (मेरे अनुसार), div ऊंचाई या अधिकतम ऊंचाई सेट करके।

सीएसएस:

.expandable { 
    max-height: 3em; 
    overflow: hidden; 
    transition: max-height .3s; 
} 
क्लिक पर

, jQuery के साथ सेट अधिकतम ऊंचाई:

$(.someSelector).css('max-height', expandedHeight); 

तब स्टाइल को दूर जब यह फिर से क्लिक किया:

$(.someSelector).attr('style', ''); 

आप देख सकते हैं this demo example

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