2011-08-09 38 views
3

如何获取浏览器窗口高度,以便找到中心位置?获取当前浏览器窗口中心

我只需要窗口高度,而不是网页高度。

我试过$(window).height()/2,但它只适用于浏览器从页面顶部开始对焦的情况。如果我向下滚动,我会得到错误的中心。

回答

9

为了得到当前可视区域的中心的y值,使用:

$(window).scrollTop() + $(window).height()/2 

我试了一下这个网页上,通过开放的网络督察,并进入:

$('<p>').text('test').appendTo('body').css({position: 'absolute', top: $(window).scrollTop() + $(window).height()/2}); 
+0

就是这样:Dhanhan – BiberFiver

0

我认为身体的高度需要在括号内才能正常工作:

var center = $("body").scrollTop() + ($("body").height()/2); 

但是,如果你正在做一个弹出对话框,最好是检测用户是否不在移动设备上,然后使用CSS“position:fixed”。你发现用于移动设备,因为移动Safari浏览器不理解在​​固定的IOS版本定位之前5.使用这个代码检测:

var isMobile = navigator.appVersion.indexOf("Mobile/") != -1; 

广告@米

+0

不,高度计算不需要在括号内。在JavaScript中,乘法的优先级高于加法。 https://developer.mozilla.org/en/JavaScript/Reference/operators/operator_precedence#Table关于'position:fixed'的好处。 –

+0

我不认为body height部分需要放在括号中 - Javascript的运算符优先级会执行'.',然后是'/'然后是'+' - 所以'$(“body”)。scrollTop()+ $(“body”)。height()/ 2;'与'($(“body”)。scrollTop())+(($(“body”)。height())/ 2))''' –

0

尝试window.outerHeightwindow.outerWidth,这在FF5工作(可能还有更早的版本)和Chrome,但不在IE9中。从谷歌搜索似乎这一点的信息是不容易在IE浏览器。

另请参阅this other question dealing with IE

相关问题