2012-06-12 36 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