2011-08-09 64 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

相關問題