1

[この問題は、Android モバイル Web ブラウザー (エミュレーター経由で使用) でのみ再現できることに注意してください。]

概要

アンカーをクリックしてページの下部に移動し、別のアンカーをクリックしてページの上部に移動した後、上部のテキストボックス内に入力すると、スクロールしてページの下部にあるアンカーに戻ります。

初期調査

この動作は、viewport メタ タグを使用した結果のようです。Android のブラウザーは、ユーザーが入力を開始したときに、アンカー リンクと、ユーザーがビュー内でドラッグした場所と混同されると思います。これは少し複雑なシナリオだと思いますが、この問題を回避するためのヒントやアドバイスはありますか?

再現する手順:

A. 次のマークアップを使用して、新しい Web ページ test.html を作成します。

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head>
    <meta name="viewport" content="width = device-width; initial-scale=1.0; " /> 
</head> 
<body> 
   <a name="top"></a> 
   <input type="text" /> 
   <a href="#bottom">Bottom</a> 
   [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text]  [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text]  [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text]  [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text]  [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text]  [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text]  [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text] [Dummy Text]  
   <a name="bottom"></a> 
   <a href="#top">Top</a> 
</body> 
</html>

B. Android モバイルブラウザで、test.html にアクセスします。

C. リンク「下」をクリックします

D. リンク「トップ」をクリックします

E. テキストボックスをクリックします

実績:

ブラウザがページの一番下までスクロールします。現在、ユーザーは入力内容を確認できません。

予想された結果:

E の後、ブラウザーはどこにもスクロールしません。ユーザーは気を散らすことなくテキストを入力できます。

ノート:

ユーザーが画面をドラッグして一番上に移動すると、下にスクロールせずにテキストボックスに入力できます。問題は、アンカー リンク、テキスト ボックス、ビューポート タグに限定されているようです。これらの変数のいずれかが削除された場合、バグは存在しません。

4

1 に答える 1

0

私にとってこのバグはOPの説明に従って引き起こされたことを確認したいと思います。 他の議論では、原因が3dtransformsとbackface-visibilityに関係していると仮定しています。おそらくそれも問題の要素ですが、私の場合、アンカータグを無効にするとこのバグが修正されました。

于 2012-03-26T01:28:08.223 に答える