Androidでテストしているヘッダー、テーブル、画像を含む非常に長いテキストを表示するPhoneGapアプリがあります。
スタイルのある要素を除いて、すべて正常に機能しますposition:relative
。これらの要素は、スクロール時に「遅れ」ます。つまり、ページをスクロールすると、これらの要素は約1/4秒後にスクロールを開始および終了します。
このバグは、絶対divを相対的な子と組み合わせ、子を。と組み合わせると発生しoverflow:auto
ます。これらを削除するとバグは修正されますが、そのままにしておくことをお勧めします。必要に応じて、テーブルを削除して個別に(ダイアログのように)表示したいのですが。
このバグは、標準のAndroidブラウザー(そしてもちろん私のPhoneGapアプリ)でのみ発生します。これまでのところ、次のデバイスでテストしました。
- サムスンギャラクシーネクサス(4.1.1)
- サムスンギャラクシーSIII(4.1.2)
どんな助けでもありがたいですが、HTMLと機能が変更されていない(またはあまり変更されていない)ソリューションをお勧めします。
バグを示す最小限の例を作成しました。Androidで開き、スクロールを開始するだけで、すぐに問題が発生するはずです。
<!doctype html>
<html>
<head><meta name="viewport" content="initial-scale=1.0"></head>
<body style="margin:0">
<div style="position:absolute;overflow:auto;top:100px;bottom:100px;width:100%">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam a quam arcu. Duis ultrices mollis nibh ut hendrerit. Etiam a interdum metus. Integer volutpat, nibh laoreet euismod suscipit, libero sem iaculis lorem, ut hendrerit magna orci eu elit. Nulla eu ultricies libero. Nulla facilisi. Maecenas nec turpis vitae magna lobortis ornare sit amet ut lacus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nunc vestibulum lobortis orci, sit amet ornare dui congue nec. Morbi id magna at turpis auctor ultricies. Ut rhoncus quam augue, ut consectetur risus.</p>
<div style="position:relative;background:red;">relative box<br>moves slower than the other text</div>
<p>Fusce congue orci a nunc gravida sed pretium lorem convallis. Etiam hendrerit, ligula eget lobortis vestibulum, arcu sapien pharetra magna, auctor suscipit nisl tellus quis lacus. Cras id elit at ante mollis venenatis. Donec eu sollicitudin odio. Aliquam erat volutpat. Cras et tortor sed mi faucibus sagittis non quis metus. Morbi mauris ante, posuere vel rutrum id, mattis id enim. Morbi purus quam, euismod facilisis blandit quis, commodo at justo. Aliquam in fermentum nibh. Curabitur pharetra blandit risus sit amet tristique. Suspendisse potenti. Curabitur interdum eleifend justo, et dapibus justo volutpat sed.</p>
<div style="overflow:auto">
<table>
<tr><th>test</th><th>test</th><th>test</th><th>test</th><th>test</th><th>test</th><th>test</th><th>test</th><th>test</th><th>test</th><th>test</th><th>test</th><th>test</th><th>test</th><th>test</th><th>test</th><th>test</th><th>test</th><th>test</th><th>test</th></tr>
<tr><td>test</td><td>test</td><td>test</td><td>test</td><td>test</td><td>test</td><td>test</td><td>test</td><td>test</td><td>test</td><td>test</td><td>test</td><td>test</td><td>test</td><td>test</td><td>test</td><td>test</td><td>test</td><td>test</td><td>test</td></tr>
</table>
</div>
</div>
</body>
</html>