2012-06-12 15 views
9

私が構築しているページのAndroidのブラウザの在庫に問題があります。簡単に言えば、ページは最初にズームインすることなく垂直方向にスクロールしません。私はタグがブラウザのウィンドウよりも小さい高さを報告していると思ったときにわかったと思ったが、それを修正してもスクロールの問題は解決しなかった。 (インデックスページの黒いボックスは、計算された要素の高さを報告します)Androidの既定のブラウザがスクロールしていないWebページ

私のテストデバイスは、Android 2.3を実行しているDroid Incredibleです。スクロールは、Android用Firefox、Android 4.0タブレット、すべてのiOSデバイスで動作します。サイトの

私のdevのビルドはここにある:www.adamjdesigns.info/csu/engage

EDIT - 私が試した他のコード:

  1. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
  2. if(navigator.userAgent.match(/Android 2/) && $(window).height() < 600) { $('html').css({'height':$(window).height(),'overflow':'auto'}); }

をすべてのヘルプは大歓迎です!

+0

これは答えではありませんが、単純にサーフィンしているときに、2.3のストックウェブキットベースのブラウザでこの現象を見てきました。それは一般的な出来事でしたので、私はこれがHCで修正されたバグだと推測しています。ただ言って... – Simon

+0

ありがとう、サイモン。少なくとも、問題の原因となっているコーディングでは必ずしもそうではないことを知ることが役立ちます。残念ながら、バグの言い訳は私の上司とのフックから私を得ることはありません! – AdamJ

+0

あなたは2.3のデバイスを手に入れることができます。おそらくカスタムROMをフラッシュしてから15分間サーフィンすることができます。運が良ければすぐにIIRCの動作を示すページが見つかるでしょう。皮肉なことに、Android SDKのドキュメントがこれをやっているようだ。 。特定のデバイスは、カスタムROMを実行しているAdvent Vegaでした。 – Simon

答えて

3

が、私はそれを考え出しました!このページにはYouTubeのビデオ用にiframeがありましたが、それ自体がiframeであるか動画内でビデオを再生するための関連スクリプトであるかはわかりませんが、DOMから取り除くことで問題は解決しました。 (私はそれをモバイル画面に隠してしまったのですが)

皆さん、助けてくれてありがとう!

+0

こんにちは私は同じ問題に直面しています。 htmlページではiframeを使用していますが、iframeは構造体のようなギャラリーをリストアップしており、レスポンシブなデザインです。それはiphoneでうまく動作します。しかし、スクロールはGoogleのネクサスでは機能しません。それはある程度までスクロールし、スクロールを止める。助言がありますか? –

1

はあなたのビューポートのためにこれを試してみてください:

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> 
+0

良い提案ですが、私はすでにそれを持っています。私はHTML5 Boilerplateを使用しました。また、 ''に 'overflow:scroll'を手動で指定することも無駄にしました。 – AdamJ

9

ハックですが、私は開発者を助けるかもしれない別の修正をしています。私は在庫のAndroid 2.3.4ブラウザで、最初のページの読み込みサイズを「1」からわずかに増加したサイズに上げると、垂直スクロールは最初にズームをピンチする必要なく機能することがわかりました。例:

<meta name="viewport" content="width=device-width, initial-scale=1.02" /> 
+1

これは私にとっても同様の問題を修正しました。ありがとうございます。 – Dave

+0

非常に歓迎、Dave - それを聞いてうれしい。 – Gatsby

+0

これは私が何か違法なことをしていると感じています、ありがとう!、これは私のためにアンドロイドエミュレータとデバイスで働いていました。 – porfiriopartida

2

私が問題になったのは、overflow-x:hiddenを追加したことです。私のボディータグに。これは水平スクロールバーをオフにするはずですが、Androidでは垂直スクロールバーをオフにします。そしてAndroidでは、私は水平方向にのみスクロールすることができます。おそらくAndroidブラウザのバグです。私は古いAndroid携帯電話(HTC Thunderbolt)を使用しています。私は私のCSSファイルを通過し、すべてのoverflow-x:hiddenを削除しました。

3

FWIW、Android 2.3でスクロールしていない私のウェブページで同様の問題が発生していました。問題を修正するために、Gatsbyの答えをいくつかの条件付きJavascriptで使用しました。ここに私の最終的なコードは次のとおりです。

<meta name="viewport" content="width=device-width, initial-scale=1.00"/> 
<script type="text/javascript"> 
    window.onload=function(){ 
     var ua = navigator.userAgent; 
     if(ua.indexOf("Android")>=0){ 
      var androidversion=parseFloat(ua.slice(ua.indexOf("Android")+8)); 
      if(androidversion<=2.3){ 
       document.getElementsByName("viewport")[0].setAttribute("content","width=device-width, initial-scale=1.02"); 
      } 
     } 
    }; 
</script> 

このソリューションでは、最初のAndroidのバージョンを検出し、「ハッキング」の値にメタタグの内容を変更するには、条件付きJavaScriptを使用して、その後、ほとんどのデバイスとの素晴らしい作品の通常のメタビューポートタグを設定し、 (Gatsbyによって提供されている)< = 2.3でのスクロールが可能です。これにより、ハッキングを必要としないデバイスのための不要な水平スクロールが防止されます。

+0

私はちょうどこの状況を抱えており、これはそれを解決しました。私はjqueryを使用しますが、これをメインのjsファイルの上に配置して動作させています。 – BlekStena

関連する問題