EDIT:
この回帰は、jQueryの1.8.1で修正されました - fiddle。
すでに気付いたように、これはv1.8.0のもう1つのバグです。
このfiddleは、paddingBottom
がslideUp
のアニメーションの最後で単純に差し引かれることを示しています。コールバック内でslideDown
を呼び出すと、paddingBottom
の減算はあなたのフィドルでは表示されません。そのため、paddingBottom
が即座に追加されます(減算の仕方にsymetically)。 Fiddle
修正がリリースされるまで待たずに1.7.2にダウングレードしたくない場合、1.7.2として動作させるための一時的な回避策は、CSSプロパティマップを.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
のは、あなたのチケットを投票してみましょう、それは1.8.1リリースで修正されます願っています。
編集:、それは後の時間に、異なる範囲で使用することができ、このように要素の.data()
でoriginalDimensions
を格納するための回避策を更新しました。一度に複数の要素をアニメーション化するには、.data()
を設定するための.each
反復を使用します。
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
は1.8でさらに別の回帰のように思えます。 –