2012-08-29 13 views
7

this fiddleには、ボタンの1つをクリックすると、コンテナがゆっくりと上に移動することがわかります。それが一番上に来ると、それはずっとずっと上がっていないことがわかります。インスペクタを見ると、の底面の詰め物は、slideUp()の操作中に予想されるように縮小していません。jQuery slideUp()がパディングボトム値を縮小しない

理由は何ですか?

注:スライドアップが遅すぎて問題をよりうまく表示できません。

注2:jQueryライブラリを1.7.2に変更すると、実際に正しく動作します。面白い。

FWIW:私はjQueryの

ticketを提出
+2

は1.8でさらに別の回帰のように思えます。 –

答えて

2

EDIT:

この回帰は、jQueryの1.8.1で修正されました - fiddle


すでに気付いたように、これはv1.8.0のもう1つのバグです。

このfiddleは、paddingBottomslideUpのアニメーションの最後で単純に差し引かれることを示しています。コールバック内で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

関連する問題