我试图获取当前浏览器窗口的高度,使用
$(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