Android標準ブラウザの本体回転時の横幅取得に関して
Android標準ブラウザで本体を回転させた時に画面の横幅を取りたかったのだが、バージョンによって挙動が違ったのでメモ
バージョンによってresize後だったり、orientationchange後だったりする
Android 2.3
resize → 画面の幅変更 → orientationchange
orientationchange の時に $(window).width() の値をとらないと正しい値にならない
Android4.0
orientationchange → 画面の幅変更 → resize
resize の時に $(window).width() の値をとらないと正しい値にならない
※他のバージョンは未チェック
こことかの事らしい
「FlexFirm スタッフBlog」| KSKフレックスファーム
https://www.x-fit.jp/tips/70
ここではsetTimeoutを使って、幅を取るタイミングを少し遅らせてやる方法が書いてある
スマートフォン対応、気をつけたいトラブル JavaScript編 - SSSSLIDE
んで、どうしたか
結局Androidのバージョンを見て、2.3の時だけorientationchange、それ以外の場合はresizeにbindさせてみた
追記
やっぱりなんだか変だったので調査
結果イベントの順番としては orientationchange → resize っぽかったので、両方のイベントでフックするように変更した