Android ブラウザーは、2.2 以降、少なくともスケーリングがオフになっている場合などの特定の状況下では、固定位置をサポートしています。JS のない単純な HTML ファイルがありますが、私が試した 3 台の Samsung 携帯電話での固定配置は単純に間違っています。真の固定位置の代わりに、ヘッダーはビューからスクロールアウトし、スクロールが完了すると元の位置に戻ります。
これは、私がテストした構成 (2.2、2.3、2.3 x86、4.0.4) の Android SDK エミュレーターでは発生しません。また、Samsung の携帯電話のアプリで WebView を使用している場合にも発生しません。その場合、ポジショニングは期待どおりに機能します。
Samsung Android の「ストック」ブラウザで実際の固定位置を使用する方法はありますか?
テスト済み: 1. Samsung Galaxy 551、Android 2.2 2. Samsung Galaxy S、Android 2.3 3. Samsung Galaxy S II、Android 2.3
サンプルコード:
<html>
<head>
<meta name="viewport" content="initial-scale=1.0,maximum-scale=1.0,user-scalable=no,width=device-width,height=device-height">
<style>
h1 { position: fixed; top: 0; left: 0; height: 32px; background-color: #CDCDCD; color: black; font-size: 32px; line-height: 32px; padding: 2px; width: 100%; margin: 0;}
p { margin-top: 36px; }
</style>
</head>
<body>
<h1>Header</h1>
<p>Long text goes here</p>
</body>
</html>
予想される動作は、灰色のヘッダーが画面の上部を埋め尽くし、どれだけスクロールしても動かないことです。Samsung の Android ブラウザでは、ビューからスクロールアウトし、スクロールが完了すると元の位置に戻ってしまうように見えます。これは、固定位置が Javascript を使用してシミュレートされているかのようですが、そうではありません。
編集 コメントと「回答」から判断すると、何が必要なのかはっきりしていないようです。サムスンの壊れた固定位置をオフにし、Android ブラウザーの動作中の固定位置をオンにするメタ タグまたは CSS ルール/ハックまたは JavaScript トグルを探しています。まったくサポートされていないブラウザーに壊れた固定位置を追加する Javascript ソリューションを探しているわけではありません。サムスンの固定ポジショニングはすでにそれを行っていますが、それはばかげているように見えます.