« window.resize | メイン | サラダドレッシング »

2022年2月14日 (月)

window.resize (2)

今回もWebページを作るサーバーサイドの話題です。

<body onLoad=...> よりも前に resize イベントが発生する事があるのが判りました。

onLoad で window サイズを取得して保存、window.onresize=function {....}; では、window サイズが変更されていれば resize に必用な処理、そうでなければ何もしない。としていたのですが、onLoad の前に onResize が実行されるとはねぇ。

結局、var windowHeight, var windowWidth という変数を用意して「あり得ない値」(たとえば 0 とか)で初期化しておき、onResize で windowHeight などが初期値であった場合はその時の window サイズを windowHeight などに代入し、resize の処理はしないようにしました。

var windowWidth = 0;

var windowHeight = 0;

    onLoad 時に windowWidth, windowHeight  にその時の window サイズを保存

window.onResize = function{

    var curWindowWidth=window.innerWidth;

    var curWindowWidth=window.innerWidth;

    if((windowWidth == 0) && (windowHeight  == 0)){

        windowWidth = curWindowWidth;
        windowHeight = curWindowHeight;

    }else{

        if(ウインドウサイズが変化していたら){

            onResize に必用な処置;

        }

    }

}

としました。今のところOKみたい。

・・・ったく、面倒な・・・