画面の中央に配置されるはずの固定要素があります。内部にも入力要素があります。当然のことながら、入力に焦点を合わせると、固定要素を含むページ全体が移動します。
ただし、ユーザーが「Go」キーまたは私が作成したボタンを押して、固定要素全体を非表示にし、入力をぼかした場合、次に固定要素を表示しようとすると、まだ場所がずれています(ページが戻ってきます)通常に)。画面の下部から半分スライドしたことを示します(入力がフォーカスされておらず、キーボードが下がっていても)。
どんな助けでもいただければ幸いです。私はこれについて髪を抜いてきました。これはPhoneGapプロジェクトに表示されていますが、MobileSafariで表示される標準のWebサイトを使用して問題を再現しました。
これが私のコードの一部です:
<!--(HTML)-->
<div class="smooth-button" onclick="show()">Show</div>
<div id="popin">
<input type="text" placeholder="Example!" />
<div class="smooth-button" onclick="save()">Save</div>
</div>
...
/* (CSS) */
#popin {
position: fixed;
left: 50%;
top: 50%;
height: 400px;
width: 300px;
margin-top: -200px; /*keeps it perfectly centered*/
margin-left: -150px; /*keeps it perfectly centered*/
}
#smooth-button {
/* make the div look like a cool button */
}
...
// (JavaScript)
function show() {
$("#popin").css('display', 'block');
}
function save() {
//code to save text
$("#popin").css('display', 'none');
}