モバイル Chrome (私の場合は iOS 7.0.3 と Chrome 33.0.1750.21) でキーボードを開くと、ウィンドウの高さが変わります。それで大丈夫です。ただし、キーボードを非表示にしても、ウィンドウの高さは元に戻りません。
サイズ変更時にウィンドウの高さを書き込む簡単なデモを作成しました。
$(window).on('resize', function () {
$('#heights').prepend($(window).height() + '<br />');
}).resize();
ここで試すことができます: http://jsfiddle.net/orthes/QkFCZ/。
入力をクリックしてキーボードを開き、非表示にします。
機能:
- デフォルトの高さは正しいです(私の場合、iPad mini - 836px)
- キーボードを開くと、ウィンドウの高さが 538px に変更されます - これはまだ正しいです
- キーボードを閉じると、サイズ変更イベントも発生しません-ここから問題が始まります
- リンクをクリックして現在のウィンドウの高さを手動で取得すると、538px と書き込まれます (イベントは 836px に戻るはずです)。
それは既知の問題ですか?回避策はありますか?
高さ100%の固定配置要素を使用したい場合、それは私に影響します。負荷がかかると、高さは正しいのですが、キーボードを開いて非表示にすると、要素の高さが 100% にサイズ変更されません。