2009-07-02 7 views
9

जैसा कि शीर्षक का तात्पर्य है, मैं jQuery के शो का उपयोग कर रहा हूं और तत्वों को छिपाने और दिखाने के लिए कार्यों को छुपाता हूं। हालांकि, मैं तत्व की ऊंचाई, केवल चौड़ाई में स्केल नहीं करना चाहता हूं।शो/छुपा कार्य को केवल चौड़ाई चौड़ाई, ऊंचाई पर संशोधित करें?

मैं एनिमेट फ़ंक्शन का उपयोग करने के बारे में सोच रहा था लेकिन मुझे यकीन नहीं था कि यह इसके बारे में जाने का सबसे अच्छा तरीका है या नहीं।

इसके अलावा, मैं जावास्क्रिप्ट में ऊंचाई सेट नहीं करना चाहता क्योंकि यह मार्कअप में बदल सकता है।

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

उत्तर

17

आप चेतन फ़ंक्शन का उपयोग करना चाहते हैं:

$("div.myElement").animate({width: "toggle"}); 

animating शो और छिपाने के तरीकों ज्यादातर घमंड तरीकों कि एक सुंदर एनीमेशन प्रदर्शित कर रहे हैं। आम तौर पर, आप प्रभाव को अनुकूलित करना चाहते हैं। आप यह भी कोशिश कर सकते हैं:

$("div.myElement").animate({width: "toggle", opacity: "toggle"}); 

एक सुंदर चौड़े और फीका-प्रभाव के लिए। और अगर आप अपने आप को अधिक से अधिक इन ऐनिमेशन का उपयोग कर पाते हैं, तो आप उन्हें एक नया jQuery विधि में लपेट कर सकते हैं:

$.fn.myShow = function(duration) { 
    return this.animate({width: "toggle", opacity: "toggle"}, duration || 1000); 
}); 

$("div.myElement").myShow("slow"); 
+0

मैं बदल गया "चौड़ाई" की समस्या का समाधान HTML के रूप में मिलाने के लिए दिखाई हल करने के लिए "ऊंचाई" करने के लिए यह टॉगल किया। यह पूरी तरह से काम किया! – Chris

+2

यदि आप केवल ऊंचाई में रुचि रखते हैं (उदाहरण के लिए ओपी चाहता है चौड़ाई नहीं है), तो आप [स्लाइडअप] (http://api.jquery.com/slideUp/) और [स्लाइडडाउन] (http: //api.jquery] का उपयोग कर सकते हैं .com/slideDown /)। –

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