0

jQuery .height() 関数に問題があります。

テキストが変更されると、最終結果は動的な高さを持つ div になります。したがって、ラッパー div とそのラッパー内にコンテンツ div があります。テキストはDOMの他の場所にある非表示のdivのどこかにあり、.html()関数で「インポート」され、不透明度を0に設定してから1に戻すシミュレートされたフェードイン/アウトです。

コンテンツを変更しようとすると、ラッパーのサイズが変更されますが、古い高さの値になります。コンテンツ div の現在の値を取得することができません...

これは魔法が起こるべき場所です...

nav.click(function() {
    contDiv.animate({opacity:0}, 200, function() {
        contDiv.html(currCont);
        contDiv.animate({opacity:1}, 200);
    });

    wrapper.animate({height:contDiv.height()},200);
});
4

1 に答える 1

1

@MrOBrian が言うように、div にコンテンツが含まれる前に高さまでアニメーション化するため、次のようにコールバック関数でこのアニメーションを呼び出す必要がある場合があります。

nav.click(function() {
    contDiv.animate({opacity:0}, 200, function() {
        contDiv.html(currCont);
        wrapper.animate({height:contDiv.height()},200);
        contDiv.animate({opacity:1}, 200);
    });
});
于 2012-07-18T23:37:03.660 に答える