今回も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みたい。
・・・ったく、面倒な・・・