EDIT:
Esta regresión se fijó en jQuery 1.8.1 - fiddle.
Como ya habrás notado, este es otro error en v1.8.0.
Esto fiddle demuestra que el paddingBottom
simplemente se resta al final de la animación slideUp
. La sustracción sutil de paddingBottom
no está visible en su violín porque cuando llama al slideDown
dentro de la devolución de llamada, el paddingBottom
se vuelve a agregar al instante (de forma simétrica a cómo se resta). Fiddle
si no desea esperar hasta que se publique la revisión y no desea volver a la versión 1.7.2, una solución temporal para que se comporte como 1.7.2 sería pasar el mapa de propiedades CSS a .animate
:
function next() {
var q = $(this).parents('li');
q.data('originalDimensions', {
borderTopWidth: q.css('borderTopWidth'),
paddingTop: q.css('paddingTop'),
height: q.css('height'),
paddingBottom: q.css('paddingBottom'),
borderBottomWidth: q.css('borderBottomWidth')
});
q.animate({ borderTopWidth:0, paddingTop:0, height:0, paddingBottom:0, borderBottomWidth:0 }, 5000, function(){
$(this).animate($(this).data('originalDimensions'), 5000);
});
}
Fiddle
Votemos su boleto y esperar que se fija en la versión 1.8.1.
edición: Actualización de la solución para almacenar el originalDimensions
en el elemento de .data()
, de esta manera se puede utilizar en un momento posterior y en un ámbito diferente. Para animar múltiples elementos a la vez, utilizar .each
iteración para el ajuste del .data()
:
q.each(function() {
var $this = $(this);
$this.data('originalDimensions', {
borderTopWidth: $this.css('borderTopWidth'),
//...
});
});
q.animate({ borderTopWidth:0, /*...*/ }, 5000, function() {
$(this).animate($(this).data('originalDimensions'), 5000);
});
Fiddle
parece como otra regresión en 1.8. –