3

フォームが送信されると、フォームが「スライドアウト」し、を使用して$.get()、別のページをロードしてスライドインします。フォームの非表示と次のページの表示の間に、divが折りたたまれ、すべてのフッターが一時的に終了します。フォームがあった場所。

次に、「次のページ」の読み込みが完了すると、フッターは(新しいページのコンテンツの下で)一番下に戻ります。フォームのサイズは大きく異なる可能性があるため、DIVの高さを指定しないようにしています。

divが変更されないようにする方法はありますか?

コード:

$("#MyForm").hide("slide", { direction: "left" }, 250, function () {
    $.get("../NewPage.html", function (data) {
        $("#NewPagePlaceholder").html(data);
        $("#NewPagePlaceholder").show("slide", { direction: "right" }, 250);
    });
});
4

4 に答える 4

9

CSSを使用していますか?display:none;divを非表示にするために使用する仮定を作成します(私は知っていますが、コードが表示されません) 。代わりに、を使用してみてくださいvisibility:hidden。JQueryを使用している場合は、css()メソッドをセレクターに追加し、この方法で可視性を非表示に設定できます。

于 2012-12-07T21:41:12.493 に答える
6

@user1394965が言ったこと。簡単な例を次に示します。

.hide()、オブジェクトのcssプロパティdisplay: noneを作成し、ページ上で占めるスペースを削除します。プロパティはvisibility: hiddenそれを非表示にしますが、それでもページ上のスペースを維持します。

したがって、実行する代わりに:

$('#elementId').hide();

以下をせよ:

$('#elementId').css('visibility', 'hidden');
于 2012-12-07T21:46:26.650 に答える
2

上記の他のオプションの方が優れている可能性があります。子divに基づいてhieghtを設定するオプションがありますが、コードを表示せずにこれが適切かどうかを判断するのは困難です。

例(未テスト):

var height = $('#childdiv').height();
$('#childdiv').parent().css('height', height);
于 2012-12-07T21:54:33.587 に答える
0

アニメーション中にのみdivの高さを指定します。つまり、古いフォームをスライドさせる前に、divを同じ高さに変更します。新しいフォームがスライドインしたら、この設定された高さを削除します。

于 2012-12-07T21:41:48.360 に答える