2011-05-27 13 views
8

मैं source code in jquery for slideup पर ध्यान दिया है ...स्लाइडअप() jQuery में कैसे काम करता है? मैं अपने खुद के slideRIght()

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

बनाने के लिए मैं समझता हूँ कि इस कार्य के लिए आशुलिपि है कोशिश कर रहा हूँ, इसलिए मैं folllow GenFX

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

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

    return obj; 
} 
के माध्यम से

और फिर fxAttrs

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

लेकिन मैं सिर्फ को समझ नहीं सकता कि यह कैसे कोड काम करता है, या कैसे मैं एक slideLeft या स्लाइड बनाने के बारे में जाना होगा ठीक है जो HTML की चौड़ाई विशेषता को प्रभावित करता है।

+2

यह 'स्लाइडअप' के लिए एक बेहतर लिंक है: http://james.padolsey.com/jquery/#v=1.2.6&fn=jQuery.fn.slideUp – Neal

उत्तर

1

आप slideUp साथ के रूप में slideRight साथ भी ऐसा ही कर सकते हैं:

$.fn.slideRight = function(options) { 
    var s_opt = { 
     speed: "slow", 
     callback: null 
    } 

    $.extend(s_opt, options); 
    return this.each(function() { 
     $(this).effect("slide", null, 
      s_opt.speed, s_opt.callback); 
    }); 
}; 

फिडल: http://jsfiddle.net/maniator/eVUsH/

+0

यह पढ़ने के लिए बहुत मुश्किल है। आप उपयोगकर्ता को विकल्प पास करने की इजाजत दे रहे हैं, लेकिन आपने "स्लाइड" प्रभाव डाला है। वह कहाँ से आया, और अगर मैं बाएं स्लाइड करना चाहता था, तो क्या यह संभव है? – digiguru

3

आप उपयोग कर सकते हैं: jsFiddle पर

$('div').animate({ width: 'show' }); // slideLeft 

$('div').animate({ width: 'hide' }); // slideRight 

डेमो।

+0

मुझे इस तकनीक को पसंद है क्योंकि यह jquery UI का उपयोग नहीं करता है, लेकिन मुझे दूसरी दिशा में उलटी जाने की कोशिश करने में वास्तविक कठिनाइयों का सामना करना पड़ रहा है (इस डेमो में दाएं स्लाइड करें - जब यह छुपा हुआ है http: // jsfiddle। नेट/बीजे 4 अपराह्न/4 /) – digiguru

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