1

パディング付きのコンテナとそのdiv (#content)があります。を介していくつかの新しいものをロードし(新しいhtmlにはすべてが含まれています)、# htmlを新しいhtmlに置き換えます。10pxcontent (#inner_content)ajax#inner_content divcontent's

div (#content)これを行っている間、コンテナの高さをアニメーションによって新しいコンテンツの高さに調整したいと思います。そこで、オーバーフローを設定しました。コンテナdivに対して非表示にし、新しいコンテンツをロードすると、その高さを取得して、コンテナdivを同じ高さにアニメーション化します。高さが(10-20 pixels必要以上に高くなることがあり、それが設計に問題を引き起こしていることを期待してください。

そこで、アニメーションが完了した後、.animate()コンテナの高さdivを''( )に設定して、高さが正しくなるように、に完全な関数を配置しました。auto問題は、完全な関数がすぐに実行され、アニメーションがスキップされ、高さが即座に自動になることです。コードは次のとおりです。

$("#content").html(response); 
$("#content").animate({height: $("#inner_content").height()+"px"}, 300, function () {
$("#content").css({height: ''});
});

どうすればこの問題を解決できますか?アニメーションを実行してから、高さをautoに設定する必要があります(これにより、divがすぐに10〜20ピクセル短くなるため、プロセスに小さな「ギャップ」が発生しますが、問題ありません。

4

1 に答える 1

0

うーん、ソースコードがないとトリッキーですが、私の直感では、何らかの理由で、あなた#content#inner_contentdivは実際には同じ高さ(私は0だと思います)であると言っています。これにより、アニメーションが即座に実行され、イベントがすぐに発生します。同じように。

ソースを提供できますか?

outerHeight()最初に部門の方法で遊んで、何が起こるかを確認することをお勧めします。さらに、をオフにしてoverflow: hidden、代わりに次の擬似コードを試してください。

  1. 新しいコンテンツを非表示のセパレートにロードしますdiv
  2. 新しいコンテンツの高さを取得する
  3. 現在のコンテンツをアニメーション化する
  4. 現在のコンテンツを新しいコンテンツで更新します
于 2012-06-08T09:08:30.933 に答える