jQuery - 如何知道窗口是在宽度/高度还是两者都调整大小?

时间:2012-09-30 12:03:16

标签: javascript jquery resize window

我使用jQuery的函数.resize()调整窗口大小有点问题。我想知道哪个尺寸越来越大 - 宽度或高度。我需要这个,因为如果我只提出两个条件 - 如果宽度比div大50px并且如果高度比div大50px,

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

然后正在处理一个条件,我只能调整宽度或高度。

我怎么知道哪个尺寸正在变化,或两者都是?

2 个答案:

答案 0 :(得分: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;
});

答案 1 :(得分: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/