2012-09-30 69 views
8

我有一個使用jQuery的函數.resize()調整窗口大小的問題。我想知道哪個尺寸變得更大/更小 - 寬度或高度。我需要這個,因爲如果我只是把兩個條件 - 如果寬度爲50像素比格更大,如果高度是50像素比格大,jQuery - 如何知道窗口是在寬度/高度還是兩者都調整大小?

// (pseudocode) 
if width = div.width + 50px 
    width = something 
if height = div.height + 50px 
    height = something 

則致力於只是一個條件,我只能調整寬度或高度。

我怎麼知道哪個尺寸在尺寸上或者兩者都有變化?

+2

你爲什麼不發佈您的代碼,你試過? –

回答

19

通過將最後的窗口大小值保存在變量中。

var h = $(window).height(), w = $(window).width(); 
$(window).resize(function(){ 

    var nh = $(window).height(), nw = $(window).width(); 
    // compare the corresponding variables. 
    h = nh; w = nw; // update h and w; 
}); 
3

保存之前的尺寸,並與之比較,每次尺寸變化時。

對於前:

var prevW = -1, prevH = -1; 

$(document).ready(function() { 

    // ... other stuff you might have inside .ready() 

    prevW = $(window).width(); 
    prevH = $(window).height(); 
}); 

$(window).resize(function() { 
    var widthChanged = false, heightChanged = false; 
    if($(window).width() != prevW) { 
     widthChanged = true; 
    } 
    if($(window).height() != prevH) { 
     heightChanged = true; 
    } 

    // your stuff 

    prevW = $(window).width(); 
    prevH = $(window).height(); 

}); 

演示:http://jsfiddle.net/44aNW/

+0

您需要在= true之後保存以前的寬度/高度,以使其多次運行。 –

+0

啊,那是正確的。現在修復。 – techfoobar

+0

這不起作用。它只適用於第二條件,而不是兩條。 – user1257255

相關問題