首页 文章

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

提问于
浏览
8

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

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

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

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

2 回答

  • 19

    每次尺寸变化时,保存以前的尺寸并与之进行比较 .

    例如:

    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();
    
    });
    

    Demo: http://jsfiddle.net/44aNW/

  • 3

    通过在变量中保存最后一个窗口大小值 .

    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;
    });
    

相关问题