全て、
非常に「背の高い」フォームを含む Web アプリケーションに取り組んでいます。(高さとは、通常の画面よりも数百パーセント高いことを意味します)。
このデザインでは、フォーム内のユーザーの位置に関係なく、常に表示される画面の下部に固定された「フッター」が必要です。
つまり、ユーザーがフォームの上部、中央、または下部の近くにいるかどうかに関係なく、フッターが表示され、フォームはその「下」でスクロールする必要があります。
これを実装するために、フッターを 、position:fixed
、およびの div として作成しましたbottom:0
。
これは、iOS5 の Safari を含む、私がテストしたすべてのブラウザーで完全に機能します。
1つのバグがあることを除いて...
ユーザーがフォームの上部近くにいて、テキスト フィールドの 1 つにフォーカスを移すと、予想どおり、iOS はキーボードを表示します。
ユーザーが [次へ] ボタンをクリックするたびに、iOS はユーザーを次のフィールドに「タブ」で移動します。
彼女が [次へ] を繰り返しクリックしてフォームを下に進むと、iOS はフォームを自動的に「上にスクロール」するため、フォーム上の彼女の位置は表示されたままになります。
ただし、iOS はフッター div の位置を更新していないようですposition:fixed
。フォームの残りの部分と一緒に誤ってスクロールアップします。
ユーザーがキーボードを閉じた場合、div は「適切な」場所に復元されるため、これは回復不能なエラーではありません。しかし、フッターがまったく動くという事実は、明らかな問題です。
これは、iOS の実装のバグまたは欠点position:fixed
ですか? または、私が間違っていることがありますか?
よろしくお願いします!
[アップデート]
position:fixed
Remy Sharp (適切な名前) は、iOS/Safariのさまざまなバグや問題について、優れた詳細な記事を書いています: http://remysharp.com/2012/05/24/issues-with-position-fixed-scrolling -on-ios/ . position:fixed
iOSユーザー向けのサイトでの利用を考えている方は必読です...