2011-09-28 27 views
0

我想設置一個div作爲窗口的高度時,頁面加載的高度變化...做的東西時,屏幕分辨率與jQuery

所以我用下面的代碼:

$(document).ready(function() { 
      var x = screen.availWidth; 
      var y1 = screen.availHeight; 
      var y2 = screen.Height; 
      var w = $(window).height(); 
      var d = $(document).height(); 
      alert('availHeight : ' + y1); 
      alert('Height : ' + y2); 
      alert('window : ' + w); 
      alert('document : ' + d); 
      $('#OuterDiv').css({ 'height': w }); 
      //alert($('#OuterDiv').css('height')); 
     }); //End Of $(document).reedy 

問題#1 :

當屏幕分辨率發生變化時,div仍然有前一個高度。
我該如何解決這個問題?

問題2:

我想HEIGHT = 100%,該分區和,因爲我使用jQuery的一些CSS問題。
但是,當頁面加載(頁面加載期間)div的高度是它的內容的高度,然後jQuery工作,該div得到窗口的高度。

我認爲這不是很好,在頁面加載。
我該如何解決這個問題?

height:100%不適用於該分區的工作:

這裏的原因 - >LINK

在此先感謝

回答

1

是否有任何理由,你不能只使用CSS?如果您將身體的寬度和高度設置爲100%並且絕對放置您的div,您應該達到相同的效果。

這裏就是你要找的jQuery的事件,這臺#box到窗口

$(document).ready(function() { 
    var resizeBox = function() { 
     $('#jq').css({width: $(window).width(), height: $(window).height()}); 
    }; 
    resizeBox(); 
    $(window).resize(resizeBox); 
}); 

的寬度和高度,下面是在http://jsfiddle.net/JxWm9/4/其中包括比較CSS盒子的例子。請注意,JS版本滯後是因爲它基於resize事件,而CSS調整大小本身就是瀏覽器本身。

+0

http://jsfiddle.net/JxWm9/4/更清潔 – Petah

+0

@rooney謝謝你們的答案/但我需要比document.ready更快的速度(問題2)/我該怎麼處理這個問題? – MoonLight

5

您可以捕獲resize事件,像這樣:

$(window).resize(function() { 
    alert($(window).width()); 
    alert($(window).height()); 
}); 

如果您想立即調整大小,請將腳本從準備好的事件中移出,並將其直接放置在012的正下方(也可以在準備就緒時再次調用它)

例如,

<div class="myDiv">Content</div> 
<script>$('#myDiv').height($(window).height());</script>