1

jQuery を使用してコンテナー要素の高さと幅を指定しようとしてい.css()ますが、コードでウィンドウの高さと幅として設定されています。コードが機能しない理由を教えてください。

以下はコードです:

$(document).ready(function () {
    var H = $(window).height();
    var W = $(window).width();
    var h = W / 1.625;
    var w = H * 1.625;
    if (w > W) {
        $("#container").css("height", h + 'px').css("maxWidth", W + 'px;');
    else {
        $('#container').css("maxHeight", H + 'px').css("width", w + 'px;');
    }
});
4

2 に答える 2

6

あなたの if ステートメントには}がないため、そもそも機能しません。変化する:

if(w>W)  
{
    $("#container").css("height", h+'px').css("maxWidth", W+'px;');
    else
        ...

に:

if(w>W)  
{
    $("#container").css("height", h+'px').css("maxWidth", W+'px;');    
}                
else
    ...

また、複数の CSS プロパティを設定しているので、プロパティをオブジェクトとして渡すことで、これらを 1 つの CSS メソッドに組み合わせることができます。

if (w>W) 
{
    $("#container").css({height:h, maxWidth:w});
}
...

pxほとんどの場合、jQueryが自動的に解決します。詳細については、jQuery のcss()ドキュメントを参照してください。:)

于 2013-05-22T13:28:13.330 に答える
2

に右中括弧がない}ためif、コードは次のようになります。

if (w > W) {
    $("#container").css("height", h + 'px').css("maxWidth", W + 'px;');  
}
else {
    $('#container').css("maxHeight", H + 'px').css("width", w + 'px;');
}

css プロパティをチェーンではなくオブジェクトの一部として渡すことで、コードの可読性を向上させることができます。多くのプロパティを追加すると、それらをオブジェクトとして渡すときにかなり役立つからです。

if (w > W) {
    $("#container").css({
         "height": h + 'px', 
         "max-width": W + 'px'
    });  
}
else {
    $("#container").css({
         "max-height": H + 'px', 
         "width": w + 'px'
    });
}
于 2013-05-22T13:29:32.953 に答える