2012-05-12 85 views
4

我设置视口标签480像素所以在iPhone(肖像模式)网站的真实尺寸是:iPhone(jQuery)的高度错误?

  1. 480x534px时,最上面一栏是可见
  2. 480x594px时,最上面一栏是 隐藏

然而, ,jQuery(window).height()window.innerHeightjQuery(window).InnerHeight()总是返回480x534px,并且在尝试将height: 100%; width: 100%;容器放置在当前内容(弹出窗口)的顶部时,会在网站底部创建60px的间隔。

这被报告为jQuery bug(和iPhone bug),但是有没有解决方法?

+0

检查我的回答类似的问题,可能会有所帮助http://stackoverflow.com/questions/8205812/jquery-js-ios-4-and-document-height-problems –

+0

@DmitrySemenov谢谢!一年前我找到了一种方法来处理这个问题,并且我将这个错误报告给了jQuery。他们说这应该在jQuery 1.8中解决(现在我们有jQuery 1.9,所以它可能已经修复了)。 iOS升级后(最近6.0)也有重大变化,所以我敢打赌,我们必须定期关注类似的事情,并更新脚本/库/插件:) – Atadj

回答

1

当在iPhone上加载页面时,出现顶部栏。
这就是为什么$(window).height()将返回较小窗口的实际大小。
顶杆向上滑动一段时间后窗口大小发生变化。
所以你可以添加一个常数到(window).height()代表顶部栏大小或hook up$(window).resize()事件来检索顶部面板消失后的实际大小。

+0

我在这之前和之后检索高度相同(错误)value:window.addEventListener(“load”,function(){ window.scrollTo(0,1); }); – Atadj

1

请务必使用外部高度而不是内部高度。不幸的是,jQuery的$(window).outerHeight()并不适用于窗口(它返回一样$(window).height())和文件元素,所以你必须这样做,在普通的JavaScript,如下:

(typeof window.outerHeight != 'undefined')?Math.max(window.outerHeight, $(window).height()):$(window).height()