0

スクロールバーの上部位置の設定に問題があります。実際に必要なのは; 私は JQuery キーボード プラグインを使用しています。すべての要素に対して、ページの中央下部に仮想キーボードを表示する必要があり、それが完了しました。

しかし、私が抱えている問題は、そのページがスクロールバーを表示しないページの下部近くに入力フィールドがある場合です (つまり、私が持っているすべての要素が私のページに表示されているため、オーバーフローの必要がないことを意味します) . ページの下部に仮想キーボードを表示していて、フォーカスされた要素もページの下部にある場合は、スクロールバーを開始する必要があり、ページは自動的にスクロールダウンして上に移動し、アクティブな入力フィールド要素が表示されるようにする必要があります自分。

これを使ってスクロールバーを設定してみました

$(document).scrollTop(_scroll_top + (_el_top + _el_height) - _keyboard_top);

_scroll_top は現在のスクロールの上部位置、_el_top はフォーカスされた要素の上部位置、_el_height はフォーカスされた要素の高さ、_keyboard_top はキーボードの上部位置です。

問題は、ページの高さが高い場合です(スクロールバーのサイズが小さいことを意味します。つまり、スクロールバーのサイズが画面の約60%になる可能性があります.Height)scrollTopは正しく機能しており、キーボードが見える。しかし、ページの高さが小さい場合 (例: スクロール バーのサイズが約 90% であるか、画面と同じサイズである可能性があります。高さ) scrollTop が正しく機能しないため、アクティブな入力要素が表示されず、仮想の背後にあります。キーボード。

スクロールトップを正しく設定して、アクティブな入力要素を表示し、その要素の下部に仮想キーボードを表示するにはどうすればよいですか。

添付画像をご覧ください。実際にアクティブな入力要素が表示される場所です。

最初の画像は前です キーボードを有効にします: 要素の位置を見て、上にスクロールします
2 番目の画像は後です キーボードを有効にします: 要素の位置を見て、上にスクロールします キーボードを有効にする前: 要素の位置を確認し、上にスクロールします

キーボードを有効にした後: 要素の位置を確認し、上にスクロールします

これは、スクロール バーのサイズが大きい場合に必要なものです (画面の約 90% の高さ)。

前もって感謝します。

PS: 質問の仕方で混乱させてしまい、大変申し訳ありません。

4

2 に答える 2

0

使用jQuery('html,body').scrollTop('other things here');

于 2012-09-21T04:58:33.743 に答える
0

回答ありがとうございます。私は私の質問に対する解決策を見つけました。ページの下部に、ダミーの div 要素を作成しました。

<div id="scroll_dummy"></div>

最初は、この div の高さはゼロです。このdivにキーボードの高さを適用しました。その結果、ページ サイズが大きくなり、スクロール トップを簡単に移動できるようになります。クローズ時には、このスタイルに戻ります。

次に、scrollTopを適用している場所でこれを行いました。

$("#scroll_dummy").css("height", _keyboard_height);
$(document).scrollTop(_scroll_top + (_el_top + _el_height) - _keyboard_top);

どこ

  • _scroll_top : スクロールトップ位置
  • _el_top : アクティブな要素の上位置
  • _el_height : アクティブな要素の高さ
  • _keyboard_top : キーボード要素の上位置
  • _keyboard_height : キーボード要素の高さ位置

これで完了... :)

于 2012-09-21T06:04:10.280 に答える