web-dev-qa-db-ja.com

モバイルサファリまたはchrome=のスクリーンキーボードが開いたときに発生するjavascriptイベントはありますか?

私は、私たちのWebアプリケーションのスクリーンキーボードに反応してみます。残念ながら、これを複雑にすることがいくつかあります。

まず、アプリケーションはモバイルプラットフォーム(タブレット)とデスクトップで同じように実行する必要があります。さらに、ドキュメント/本文のスクロールは禁止されており、さらに魅力を高めるために、タブレットでは横向きモードが必須です。

そのため、誰かが入力フィールドを選択すると、スクリーンキーボードが開いてページの半分が見えなくなるため、一部の入力が非表示になり、変更する必要があります。

残念ながら、発生するイベントはまったくないようです。これは、アプリケーションの半分が見えなくなったことを示しています。スクロールイベントとサイズ変更イベントをすでに確認しましたが、それらも起動しませんでした。

もちろん、タブレットを使用していると確信しているとすぐに、私は常に何らかの形で反応することができました。おそらく、ユーザーの95%がハードウェアキーボードを取り付けないでしょう。しかし、よりクリーンな方法はありませんか?

14
koehr

残念ながら、ここでの答えは明確です:[〜#〜] no [〜#〜]。ここでは、関連する質問がいくつかあり、さらに詳しい情報とコツがあります。

仮想キーボードがアクティブなときの画面スタイル

iPad Web App:SafariでJavaScriptを使用して仮想キーボードを検出しますか?

Android/iPhone Webkit、キーボードポップでトリガーされるイベント?

5
koehr

キーボードがページのサイズを変更すると、サイズ変更イベントが発生します。ウィンドウにonresizeイベントハンドラーを追加し、必要に応じてスクロールを調整します。

3
Zectbumo

focusイベントを試しましたか?

そのため、キーボードが表示されたときにフォーム(または他の親要素)の最小の高さをクラスでロックできるため、ユーザーは入力が選択されたときにタッチスクリーンをスクロールできます。

私は同様の問題を探していました、そしてこのトリックは私のケースを解決します。 =)

2
Augusto TMW