2012-06-12 34 views
9

我在建立的網頁上遇到Android股票瀏覽器的問題。簡而言之,頁面不會首先放大而垂直滾動。當我發現標籤報告的瀏覽器窗口比標籤更小時,我想我已經想通了,但修復了這個問題並沒有解決滾動問題。 (索引頁上的黑框報告元素的計算高度。)Android默認瀏覽器不滾動網頁

我的測試設備是運行Android 2.3的Droid Incredible。滾動功能適用於Android版Firefox,以及我的Android 4.0平板電腦和所有iOS設備。

我的網站的開發建設是在這裏:www.adamjdesigns.info/csu/engage

編輯 - 其他的代碼,我已經試過:

  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上看到了這種行爲與基於webkit的瀏覽器在簡單瀏覽時的差異。這是一個常見的情況,所以我的猜測是這是一個在HC以後修復的bug。只是說... – Simon

+0

謝謝,西蒙。至少它有助於知道這不一定是我的編碼導致問題的東西。不幸的是,錯誤的藉口不會讓我擺脫我的老闆! – AdamJ

+0

你可以讓自己的設備與2.3,也許閃存自定義ROM,然後衝浪15分鐘 - 運氣很快你會很快找到一個頁面,展示了行爲 - IIRC,具有諷刺意味的Android SDK文檔似乎這樣做給我。特定的設備是運行2.3定製ROM的Advent Vega。 – Simon

回答

3

我想通了!該頁面中有一個用於YouTube視頻的iframe,我不確定它是否是iframe本身或者其中播放視頻的相關腳本,但是從DOM中刪除該視頻可以解決問題。 (無論如何,我已將它設置爲隱藏在手機屏幕上。)

感謝您的幫助,每個人!

+0

嗨,我面臨同樣的問題。在我使用iframe的html頁面中,iframe列出了一個類似於結構的圖庫,並且它是一個響應式設計。它在iPhone上運行良好。但滾動不起作用在我的谷歌聯繫。它滾動到某種程度並停止滾動。有什麼建議麼? –

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

非常歡迎,戴夫 - 很高興聽到它。 – Gatsby

+0

感覺我在做非法的事情,非常感謝!,這對我在android模擬器和設備上工作。 – porfiriopartida

2

我發現的問題是我添加了overflow-x:hidden;到我的身體標記。這應該關閉水平滾動條,但是在Android中它會關閉垂直滾動條。而在Android中,我只能水平滾動。可能是Android瀏覽器中的一個錯誤。我正在使用舊的Android手機(HTC Thunderbolt)。我瀏覽了我的css文件並刪除了所有overflow-x:hidden,現在我可以再次垂直滾動。

3

FWIW,我遇到了類似的問題,我的網頁不能在Android 2.3中滾動。我用一些有條件的Javascript來解決問題,並用Gatsby的答案。這是我的最終代碼:

<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> 

該方案首先將正常的中繼檢視區標記它的偉大工程與大多數設備,然後使用條件的JavaScript來檢測的Android版本和meta標籤的內容更改爲「黑客」值(由Gatsby提供),允許在Android上滾動< = 2.3。這可以防止不需要黑客的設備進行不必要的水平滾動。

+0

我剛剛有這種情況,這解決了它。我使用jquery,但我把它放在主js文件的頂部,並且它可以工作。 – BlekStena