8

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

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

然后只在一种条件下工作,我只能调整宽度或高度。

我怎么知道哪个维度的大小正在变化,或者两者都在变化?

4

2 回答 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;
});
于 2012-09-30T12:06:17.857 回答
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/

于 2012-09-30T12:07:13.533 回答