Aquí está mi solución, que se puede utilizar como un plugin de jQuery.
(function($) {
'use strict';
// Sort us out with the options parameters
var getAnimOpts = function (a, b, c) {
if (!a) { return {duration: 'normal'}; }
if (!!c) { return {duration: a, easing: b, complete: c}; }
if (!!b) { return {duration: a, complete: b}; }
if (typeof a === 'object') { return a; }
return { duration: a };
},
getUnqueuedOpts = function (opts) {
return {
queue: false,
duration: opts.duration,
easing: opts.easing
};
};
// Declare our new effects
$.fn.showDown = function (a, b, c) {
var slideOpts = getAnimOpts(a, b, c), fadeOpts = getUnqueuedOpts(slideOpts);
$(this).hide().css('opacity', 0).slideDown(slideOpts).animate({ opacity: 1 }, fadeOpts);
};
$.fn.hideUp = function (a, b, c) {
var slideOpts = getAnimOpts(a, b, c), fadeOpts = getUnqueuedOpts(slideOpts);
$(this).show().css('opacity', 1).slideUp(slideOpts).animate({ opacity: 0 }, fadeOpts);
};
}(jQuery));
Ahora usted puede usarlo de la misma manera que utilizaría efecto de jQuery .fadeIn (o fadeOut).
// Show
$('.alert').showDown('slow');
// Hide
$('.alert').hideUp('fast', function() {
// Animation complete: '.alert' is now hidden
});
Esto cambiará el tamaño de la altura de nuestro elemento con un efecto de desvanecimiento.
Era originally posted on my blog.
que he estado tratando de resolver esto para un poco. No recibí la respuesta "correcta", pero esto puede ayudarlo: $ ('bla'). SlideDown básicamente se asigna a esto en la fuente: $ ('bla'). Animate ({height: 'show', paddingTop: 'show', paddingBottom: 'show', marginTop: 'show', marginBottom: 'show'}. Así que puedes poner eso y animar actuará como un slideDown. – Brandon
@iWebaholic: selecciona el anser correcto –
Selecciona @ La respuesta de pbierre como la respuesta aceptada. Buena solución. – earl3s