【发布时间】:2012-01-02 14:20:49
【问题描述】:
我遇到了一个奇怪的问题,似乎是各种版本的 Webkit 浏览器。我试图将一个元素放置在屏幕的中心并进行计算,我需要获得各种尺寸,特别是身体的高度和屏幕的高度。在 jQuery 中我一直在使用:
var bodyHeight = $('body').height();
var screenHeight = $(window).height();
我的页面通常比实际视口高得多,因此当我“提醒”这些变量时,bodyHeight 最终应该很大,而 screenHeight 应该保持不变(浏览器视口的高度)。
这是真的 - 火狐 - Chrome 15(哇!Chrome 什么时候升级到版本 15?) - iOS5 上的 Safari
这不适用于: - iOS4 上的 Safari - Safari 5.0.4
在后两者上,$(window).height(); 总是返回与$('body').height() 相同的值
认为这可能是一个 jQuery 问题,我将窗口高度换成了 window.outerHeight,但这也是同样的事情,让我觉得这实际上是某种 webkit 问题。
有没有人遇到过这个问题并知道解决这个问题的方法?
为了使事情复杂化,我似乎无法孤立地复制它。例如:http://jsbin.com/omogap/3 工作正常。
我已经确定这不是 CSS 问题,所以我需要找到在这个特定浏览器上造成严重破坏的其他 JS。
【问题讨论】:
-
你试过
$(document).height()吗? -
@gaby 产生的值略高于
$('body').height() -
hmm.. 必须是填充物...看看james.padolsey.com/javascript/get-document-height-cross-browser 以及...(以防万一)
-
@gaby 但我不需要文档高度。我需要视口的高度。
-
@gaby...啊哈!不过,该链接确实有一些有用的东西。它使用
document.documentElement.clientHeight,这似乎准确地抓住了视口。正在调查更多...
标签: javascript ios4 webkit window