2009-12-13 19 views
8

पर jquery एनिमेट मेरे पास क्लिक पर एक परत को एनिमेट करने के लिए यहां कुछ jquery सामग्री है। समस्या कभी-कभी सामग्री ऊंचाई सेटिंग में आवंटित ऊंचाई से अधिक हो सकती है। परत को एक निश्चित पीएक्स राशि के बजाय न्यूनतम ऊंचाई या ऑटो पर एनिमेट करने के लिए इसे संशोधित करने का कोई तरीका है?न्यूनतम ऊंचाई या ऑटो

$(function() { 
    $(".showcart").click(function(){ 
     $("#cart").animate({ height: "250px" }).animate({ height: "200px" }, "fast"); 
    }); 
    $(".hidecart").click(function(){ 
     $("#cart").animate({ height: "250px" }).animate({ height: "0px"}, "fast"); 
    }); 
}); 

उत्तर

3

दुर्भाग्य से नहीं, आप इसे फिट करने के लिए केवल यह समझने के लिए नहीं कह सकते हैं। ऐसा करने के लिए आपको या तो सही आकार को पहले से ही जानना होगा या इसकी गणना करने का एक तरीका होगा।

यदि यह सब एक ही फ़ंक्शन या एक प्लगइन के भीतर होता है तो आप इसे विस्तारित करने से पहले किसी चर में $(this).height() के मान को संग्रहीत करने पर विचार करना चाहेंगे, इसलिए आप इसे वापस कहां रख सकते हैं हो।

अन्यथा एक संभावना एक तुम हो जाना/हटना और get $('> div', $(this)).height() का उपयोग कोई कितना भी है जो इसे में सामग्री की ऊंचाई होना चाहिए इसके अंदर है कि आपके div की ऊंचाई प्राप्त करने के लिए करना चाहते हैं अंदर एक div डाल करने के लिए हो सकता है आप बाहरी div की ऊंचाई के साथ गड़बड़।

1

यह एक कठिन प्रकार है, क्योंकि यह आपके पृष्ठ की संरचना पर बहुत निर्भर करता है। यदि आप सीएसएस न्यूनतम ऊंचाई सेट कर सकते हैं, या संदर्भ के बिंदु के रूप में किसी अन्य तत्व की ऊंचाई प्राप्त कर सकते हैं तो आप उस आकार को एनिमेट कर सकते हैं जिससे चीजें थोड़ा अधिक गतिशील हो जाती हैं। दुर्भाग्य से jQuery में कोई ऑटो-जादू आकार बदलने की विधि नहीं है।

$(this).css("min-height"); //Gets min-height CSS property 

// or.. 

$(this).height(); //Gets element height 

आशा है कि मदद करता है।

16

मैंने पाया कि आप सिर्फ यह कर सकते हैं:

$("#cart").animate({ 'min-height': "250px" }, 'fast'); 

उद्धरण मुख्य बात यहाँ हैं।

+2

काम करता है! सबसे अच्छा जवाब होना चाहिए। – Damathryx

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