我試圖獲取當前瀏覽器窗口的高度,使用
$(window).on('resize',function() {
console.log("new height is: "+$(window).height());
});
但我發現了那個實在是太值低。當視口高度大約爲850像素時,我會從高度()獲取大約350或400像素的值。這是怎麼回事?
例子:http://jsfiddle.net/forgetcolor/SVqx9/
我試圖獲取當前瀏覽器窗口的高度,使用
$(window).on('resize',function() {
console.log("new height is: "+$(window).height());
});
但我發現了那個實在是太值低。當視口高度大約爲850像素時,我會從高度()獲取大約350或400像素的值。這是怎麼回事?
例子:http://jsfiddle.net/forgetcolor/SVqx9/
一個可能的原因可能是你正在檢查與螢火蟲/別的控制檯。因此,由於螢火蟲高度,您無法獲得正確的窗口高度。
你可以嘗試這樣的事情:
採取跨度/每格在您記錄:
<span id="res"></span>
然後
$(window).on('resize',function() {
$('#res').html("new height is: "+$(window).height());
});
或者,如果你想看看穿上螢火然後將其從瀏覽器中分離出來,然後檢查結果。
這是一個非常非常好的提示。在Chrome瀏覽器窗口打開的情況下,我遇到了這個問題。 –
無重放。請記住,窗口高度會因瀏覽器chrome中的項目而減少,例如地址欄,開發人員工具,書籤工具欄等等。以下內容顯示了視口高度的精確表示:
jsbin會給你一個相當不錯的窗口高度估計,因爲它不會像其他js測試站點那樣將代碼輸出限制爲小型iframe作爲jsfiddle。
http://jsbin.com/otaqej/edit#javascript,html
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.js"></script>
</head>
<body>
<div id="message">Height: 0</div>
<script>
$(window).on("resize", function(){
$("#message").html("Height: " + $(window).height());
});
</script>
</body>
</html>
的jsfiddle通過創建渲染代碼之後被動態加載的。
您的JavaScript正在計算窗口的高度,恰好是的高度,對我而言高度大約爲400px。
您的代碼正在做它應該做的。
我在Firefox遇到同樣的問題,然後在索引中添加了<!DOCTYPE HTML>
,它工作正常。
來源:http://viralpatel.net/blogs/jquery-window-height-incorrect/
你剛剛救了我的一天:D! – Kaz
當您在文檔中稍後聲明瞭doctype時,這也是這種情況,當我們將CSRF元標記添加到頁面並且$(window).height()返回了在doctype聲明之前插入的錯誤值時,它彈出。 –
哦,夥計......在這裏也保存了我的一天!一切都是......當我推到我的升級環境中時,情況截然不同,我真的很擔心。 –
對於上述方案後,誰仍然有問題...
請檢查瀏覽器的視野率到您的project.html ..
值$(窗口)。當視圖比例調整時,height()與客戶區域的「真實」像素不同。 (等其他$(XX).WIDTH()......在這種情況下)
(該瀏覽器記住我的粗心110%比率日前調整...)
也看着ozzysong的回覆[鏈接](http://stackoverflow.com/a/23320757/233545)在另一個相同的問題 –
爲了澄清 - 你得到這些錯誤_in jsFiddle_,或在正常的瀏覽器上下文中? jsFiddle使用iFrame,所以窗口不會是整個窗口,只是更小的框架。 – nrabinowitz
在一個正常的瀏覽器,而不是一個iframe。 – mix
你需要一個非jsFiddle的例子,然後 - jsFiddle總是會在這裏給你不好的數字。 – nrabinowitz