8

jQuery の関数.resize()を使用したウィンドウのサイズ変更に少し問題があります。幅または高さのどの寸法が大きく/小さくなっているかを知りたいです。これが必要なのは、幅が div よりも 50 ピクセル大きい場合と、高さが div よりも 50 ピクセル大きい場合の 2 つの条件を設定した場合、

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

次に、1 つの条件だけで作業しており、幅または高さのみをサイズ変更できます。

どちらの次元のサイズが変化しているか、または両方が変化しているかを知るにはどうすればよいですか?

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 に答える