あなたが抱えている問題は、あなたの .slideToggle 呼び出しが期間を設定するバージョンを利用してから、完了時にアニメーション化する関数呼び出しを利用しているという事実に起因しています。
.slideToggle( [期間] [, 完了] )
- duration (デフォルト: 400)
タイプ: Number または String アニメーションの実行時間を決定する文字列または数値。
- complete
タイプ: Function()
アニメーションが完了したら呼び出す関数。
あなたの無名関数は正しいアイデアを持っていますが、(お気づきのように) アニメーションが終了した後にのみ呼び出されます。
ドキュメントをさらに下にスクロールすると、次の呼び出し形式が見つかります。
.slideToggle(オプション)
したがって、以前のように 2 つのパラメーターだけではなく、この方法で .slideToggle メソッドにオブジェクトを渡すことで、柔軟性が向上します。
あなたが注意すべきことはこれです:
step
タイプ: Function( Number now, PlainObject fx )
アニメーションの各ステップの後に呼び出される関数。
したがって、既にリンクしたものに従うようにオプション オブジェクトを構築する基本的な方法は、単純に期間とステップをその中に入れて、ステップが各アニメーション フレームのコンテンツ要素のパディングを変更するための呼び出しを行うことです (これは基本的にすべてがどのように行われるかです)。まず jquery によってアニメーション化され、これは適切で整頓されたソリューションになります):
{
duration: 'slow', step: function(){
$(".content").css({'padding-top':$(".header").outerHeight()});
}
}
this を実装するjsfiddleを次に示します。これは、コンテンツ フレームが下にスクロールされている場合でも、少なくともクロムでは問題なく動作するようです。