さて、この問題は以前にもここで取り上げました ( iPad のオンスクリーン キーボードの高さは? ) ですが、最近 iOS7 がリリースされたため、再確認が必要だと思います。
問題: ページの右下隅に固定位置のモーダルが表示されます。モーダルが開いたときにフォーカスを得る単一のフォーム フィールドがあります。フォーカスにより、ソフトキーボードが開きます。問題は、モーダルをキーボードの上部に配置するためにキーボードの高さをプログラムで検出したいということです。そうしないと、モーダルの一部がビューから切り取られます。
私が試したこと:
var scrollHere = currentWidget.offset().top;
//this scrolls the page to the top of the widget, but the keyboard is below.
setTimeout(function() {
$('html, body').scrollTop(scrollHere);
}, 0);
ページがモーダルの一番上までスクロールします。フォーム フィールドがキーボードの下に隠れている場合があるため、理想的ではありません。
また、window.innerHeight を警告しようとしました
alert(window.innerHeight);
しかし、それはキーボードが表示されているかどうかに関係なく同じであることがわかります。
私の質問は、JavaScript で iOS7 のキーボードの高さを検出する方法を見つけた人はいますか? 回避策があるかもしれませんか?可能性は低いですが、これは iOS7 サファリのバグでしょうか?
どんな助けでも大歓迎です。ありがとうございました。