0

私はウェブサイトを垂直方向に中央揃えする機能を持っています:

    function centerWebsite(){
        $vpheight = $(window).height();
        $headerheight = $('header').height();
        $contentheight = $headerheight + $('#content').height();
        $margin = Math.floor(($vpheight - $contentheight)/2);

        $logospacing = $('#logo').css('margin-top');

        if($vpheight > ($contentheight + $logospacing)) {
            $margin = $margin - $logospacing;
        }

        $extendedmargin = $headerheight + $margin;

        $('html').height($vpheight);
        $('body').height($vpheight);
        $('header').css('padding-top', $margin);
        $('#content').css('padding-top', $extendedmargin);
        $('#gallerynav').css('padding-top', $extendedmargin);
    }

ページの準備ができたら、この関数を呼び出す必要があります。

$(document).ready(centerWebsite());

ウィンドウのサイズが変更されるたびに、同じ関数を呼び出したいと思います。私はこのようにそれをやろうとしました:

$(window).resize(centerWebsite());

しかし、これはうまくいきません。これに対する解決策は次のとおりです。

$(window).resize(function() {
    centerWebsite();
});

別の関数を呼び出す関数を本当に作成する必要がありますか?

4

2 に答える 2

2

括弧を含めることで、関数呼び出しを行っています。関数を参照として渡すことを検討しています。その場合、括弧なしで変数を渡す必要があります。

$(document).ready(centerWebsite);

関数内に console.log を追加するcenterwebsite()と、 を呼び出したときに実際に呼び出されていたことがわかります$(document).ready(centerWebsite());

于 2013-03-29T22:11:49.027 に答える
2

括弧を削除します:

$(window).resize(centerWebsite);

編集注: コールバックに関する情報については、この質問を確認してください: jQuery フックとコールバックとは何ですか?

于 2013-03-29T22:12:22.700 に答える