¿Cómo funciona slideUp () en jQuery? Estoy tratando de hacer mi propio slideRIght ()

He mirado el código fuente en jquery para diapositivas …

// 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 ); }; }); 

Entiendo que esto es una abreviatura de funciones, así que sigo a GenFX.

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

y luego fxAttrs

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

pero simplemente no puedo entender cómo funciona este código o cómo crearía una slideLeft o slideRight que afecte el atributo de ancho del HTML.

Puedes usar:

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

Demo en jsFiddle .

Puedes hacer lo mismo con slideRight que con slideUp :

 $.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); }); }; 

Fiddle: http://jsfiddle.net/maniator/eVUsH/