最近、モバイルWebアプリに取り組んでいます。私は現在、特に iPhone 向けの iOS に焦点を当てて、モバイル ファーストで最適化しています。ネイティブアプリのきっちりとした見た目は好みませんが、ネイティブ感は絶対に大事だと思います。このアイデアを反映するためにマークアップと CSS を作成し、これを残しました (後で発生する問題をよりよく理解するために注釈が付けられています)。
これはすべて問題なく動作し、静的なヘッダーとフッター、およびスクロール可能な内部ビュー (おかげで) を備えたネイティブな感覚を持つという利点もあります-webkit-overflow-scrolling: touch
。
iOS を 5 分以上使用したことがある人ならわかると思いますが、上下にスクロールすると、かなりの勢いでスクロールします。また、リストの一番上にヒットすると、素晴らしい「バウンス」効果が得られます。
これは iOS のフィーリングを定義するのに役立つと感じており、そのような小さなディテールが大いに役立ちます。幸いなことに、Web アプリケーションのスクロール可能な要素でリストの一番下にいて、一番上を超えてスクロールすると、同じ効果が得られます。これは、実際の望ましい動作です。
ただし、リストの一番上にいて、リストの一番上で同じバウンス動作を再現しようとすると (上記の Setting.app のように)、次のような望ましくない動作が発生します。
Stack Overflow で同様の 質問を見たことがありますが、これらはすべてバウンスを無効にすることを選択しています。バウンスし続けることがbody section section#main
まったく可能かどうか疑問に思っていますが、常にwebapp の chrome ではなくで発生させます。私は jQuery を使用していないので、答えはストレートな JavaScript であることが望ましいです (ただし、CSS ソリューションのボーナス ポイント)。
すべてのコード (Sinatra、HAML、Sass、現在のブランチは) を含むGitHub リポジトリso
、または破損した画像とリンクを含む JSFiddleを次に示しますが、iPhone で問題の問題を示しています (ホーム画面に追加してテストするのが最適です)。