2

slideDownに問題があります。要素をきちんとスライドさせる代わりに、「揺れ」を開始し、アニメーションなしですぐに表示されます。一方、SlideUpは問題なく動作します。

jsFiddleを作成しました:http://jsfiddle.net/4x4PK/1/

ボタンをクリックすると問題が発生し+ます。×ボタンは問題なく動作します。

いくつかのJSプラグインがありon.('click' ...)、問題のコードは一番下にあります。

4

2 に答える 2

3

わかりました、解決策を見つけたようです。問題は、slideDown関数がアニメーションを開始する前に要素の高さを知る必要があると思うことでした(アニメーションの終点を知るため)。

after()を使用して要素を追加すると、高さを判断するのが早すぎます。

  • 要素はすでに挿入されている必要があります。そうでない場合、高さはゼロです。
  • 要素はすでに表示されてはなりません

最後に、私はこの実用的な解決策を見つけました:

$(this).closest('.smoking-rate').after( $el );
$el.hide().slideDown()

誰かが確認できますか、高さが機能しなかった理由ですか?

于 2012-10-18T20:21:49.040 に答える
0

slideUpアニメーションが完了したら、slideDownを呼び出す必要があります。

$el.slideUp(1).slideDown('slow')

する必要があります

$el.slideUp(1, function(){
  $el.slideDown('slow');
});
于 2012-10-18T20:15:05.113 に答える