2011-09-13 16 views
1

コンテナの幅を見つけて、特定のサイズ(サイドバーのサイズを引いたもの)になるように、次のjQueryコードがあります。画面を埋める。jQueryはブラウザウィンドウのサイズが変更されても要素幅を調べる

ユーザーがブラウザウィンドウを変更しても更新されない場合を除いて正常に動作します。したがって、jQueryコードがリアルタイムで動作する必要があります。誰も助けることができますか?ありがとう

$(document).ready(function() { 

    // find out the width of the page 
    var pageWidth = $('div.MainContentHolder').width(); 
    // minus the sidebar and margin width 
    var middleWidth = pageWidth - '220'; 
    // apply the new width to the middle column 
    $('div.MiddleColumn').css('width', middleWidth); 

}); 

答えて

1
は、別の関数にコードを移動し、それが document readywindow resizeイベントの両方を実行してい

:。

function resizeElements() { 
    // find out the width of the page 
    var pageWidth = $('div.MainContentHolder').width(); 
    // minus the sidebar and margin width 
    var middleWidth = pageWidth - '220'; 
    // apply the new width to the middle column 
    $('div.MiddleColumn').css('width', middleWidth); 
} 

$(document).ready(function() { 
    resizeElements(); 
    $(window).resize(resizeElements); 
} 
+0

をところで、 '$( 'div.MiddleColumn')の幅(middleWidth)'です'$( 'div.MiddleColumn')。css( 'width'、middleWidth)'よりも優れています。 'css'を使っている方が遅く、とにかく' ### px'フォーマットが必要です。 – Blazemonger

+0

@ mblase75: '.css()'は数値を 'px'値として解釈します(' z-index'のようないくつかの特定のCSSプロパティを除く)。 –

3

これを$(ウィンドウ).resize()にバインドするだけです。

$(document).ready(function() { 

    $(window).resize(function() { 
     // find out the width of the page 
     var pageWidth = $('div.MainContentHolder').width(); 
     // minus the sidebar and margin width 
     var middleWidth = pageWidth - '220'; 
     // apply the new width to the middle column 
     $('div.MiddleColumn').css('width', middleWidth); 
    }).resize(); 

}); 
関連する問題