2012-06-12 2 views
9

내가 만들고있는 페이지의 Android 브라우저에 문제가 있습니다. 간단히 말해서, 페이지가 처음으로 확대되지 않고 수직으로 스크롤되지 않습니다. 그 태그가 브라우저 창보다 작은 높이를보고 있다고 생각했을 때 나는 알아 냈다고 생각했지만, 스크롤 문제를 고치지 않았다. (색인 페이지의 검정 상자는 계산 된 요소의 높이를보고합니다.)Android 기본 브라우저가 웹 페이지를 스크롤하지 않음

내 테스트 장치는 Android 2.3을 실행하는 Droid Incredible입니다. 스크롤 기능은 Android 용 Firefox 및 Android 4.0 태블릿과 모든 iOS 기기에서 작동합니다. 사이트의

내 dev에 빌드는 여기에 있습니다 : 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에서이 동작을 보았습니다. 내 생각에 이것은 HC에서 수정 된 버그입니다. 그냥 말하면 ... – Simon

+0

고마워, 사이먼. 적어도 그것이 문제를 일으키는 코딩과 관련이있는 것은 아님을 아는 것이 도움이됩니다. 불행히도, 버그 변명은 내 상사와의 연결을 끊지 않을 것입니다! – AdamJ

+0

당신은 2.3으로 장치를 가질 수 있고, 아마도 맞춤 ROM을 플래시 한 다음 15 분 동안 서핑을 할 수 있습니다. 운이 좋으면 곧 IIRC라는 행동을 보여주는 페이지를 찾을 것입니다. 역설적이게도 안드로이드 SDK 문서가이 일을하는 것 같습니다. . 특정 장치는 2.3 사용자 지정 ROM을 실행하는 Advent Vega였습니다. – Simon

답변

3

내가 그것을 알아 냈어! 페이지에 YouTube 동영상의 경우 iframe이 있었는데 그 동영상이 iframe이거나 관련 스크립트를 사용하고 있는지 여부는 확실하지 않지만 DOM에서 해당 동영상을 삭제하면 문제가 해결되었습니다. (나는 어쨌든 모바일 화면에 숨겨져 있습니다.)

여러분 모두 도와 줘서 고마워!

+0

안녕하세요, 저는 같은 문제에 직면하고 있습니다. html 페이지에서 iframe을 사용하고 있습니다. iframe은 구조체와 같은 갤러리를 나열하고 반응 형 디자인입니다. 그것은 아이폰에 잘 작동합니다. 하지만 두루마리가 Google 내 넥서스에서는 작동하지 않습니다. 그것은 어느 정도까지 스크롤하고 스크롤을 멈 춥니 다. 어떤 제안? –

1

은 뷰포트에 대해이 작업을 시도해보십시오

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

좋은 제안이지만, 이미 거기에 있습니다. HTML5 상용구를 사용했습니다. 나는 또한 수동으로 ''에'overflow : scroll'을 지정하지 않으려 고 노력했다. – AdamJ

9

해킹이지만 개발자에게 도움이되는 또 다른 수정 사항이 있습니다. 나는 스톡 안드로이드 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 브라우저의 버그 일 수 있습니다. 나는 오래된 안드로이드 폰 (HTC Thunderbolt)을 사용하고 있습니다. 내 CSS 파일을 통해 가서 모든 overflow-x : hidden을 제거하고 이제 다시 세로로 스크롤 할 수 있습니다.

3

FWIW, 안드로이드 2.3에서 내 웹 페이지가 스크롤되지 않는 것과 비슷한 문제가있었습니다. 문제를 해결하기 위해 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> 

이 솔루션은 첫째 대부분의 장치와 위대한 작품을 일반 메타 뷰포트 태그는 다음 안드로이드 버전을 감지하고 "해킹"값으로 메타 태그 내용을 변경하는 조건 자바 스크립트를 사용하여 설정 (개츠비 제공) 안드로이드에서 스크롤을 허용 < = 2.3. 이렇게하면 해킹이 필요하지 않은 장치의 불필요한 가로 스크롤이 방지됩니다.

+0

방금이 상황을 겪었습니다. 나는 jquery를 사용하지만이 파일을 main js 파일의 맨 위에 올려 놓는다. – BlekStena

관련 문제