2010-07-09 4 views
13

मैं $ .animate फ़ंक्शन का उपयोग कर jQuery के $ .slideDown प्रभाव को फिर से कैसे बना सकता हूं?jQuery - एनिमेट() फ़ंक्शन का उपयोग करके स्लाइडडाउन() प्रभाव को फिर से बनाएं?

+1

क्यों स्लाइडडाउन() का उपयोग न करें? – Patricia

+2

क्योंकि एनिमेट() में एक चरण विकल्प है जिसमें मैं एक फ़ंक्शन संलग्न कर सकता हूं। – Alex

उत्तर

29

एनीमेट "ऊंचाई", "मार्जिनटॉप", "मार्जिनबॉटम", "पैडिंगटॉप", और "पैडिंगबॉटम" "show" पर एनिमेट करें।

उदाहरण के लिए:

$(...).animate({ 
    "height": "show", 
    "marginTop": "show", 
    "marginBottom": "show", 
    "paddingTop": "show", 
    "paddingBottom": "show" 
}); 

स्रोत: jQuery स्रोत कोड।

fxAttrs = [ 
    // height animations 
    [ "height", "marginTop", "marginBottom", "paddingTop", "paddingBottom" ], 
    // width animations 
    [ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ], 
    // opacity animations 
    [ "opacity" ] 
]; 
... 

jQuery.each({ 
    slideDown: genFx("show", 1), 
    slideUp: genFx("hide", 1), 
    slideToggle: genFx("toggle", 1), 
    fadeIn: { opacity: "show" }, 
    fadeOut: { opacity: "hide" } 
}, function(name, props) { 
    jQuery.fn[ name ] = function(speed, callback) { 
     return this.animate(props, speed, callback); 
    }; 
}); 
... 

function genFx(type, num) { 
    var obj = {}; 

    jQuery.each(fxAttrs.concat.apply([], fxAttrs.slice(0,num)), function() { 
     obj[ this ] = type; 
    }); 

    return obj; 
} 
+0

धन्यवाद, काम करता है: डी – Alex

+1

+1 जैसा कि मैंने अभी खोजा है। – TNi

+0

मान लीजिए कि यह '.slideUp()' के लिए शो का छुपा इंस्टाड होगा? –

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