jQuery文档http://api.jquery.com/height/说
// Returns height of browser viewport
$( window ).height();
// Returns height of HTML document
$( document ).height();
但是我从两种方法中得到了相同的值。例如,(html包括溢出的div,高度=约3000px)
$( window ).height();
3588
$( document ).height();
3588
$("body").height();
3572
$("html").height();
3588
window.innerHeight;
667
它在Chrome和Firefox浏览器中都给出了相同的结果。 (由于工具栏的大小不同,该值略有不同。)
我对$( window ).height()
的期望是“浏览器视口的高度”,即window.innerHeight = 667
。但它给了3588
这比我预期的要大得多。
我明白了什么不对吗? viewport意味着什么不同吗?
无论如何,在Find the exact height and width of the viewport in a cross-browser way (no Prototype/jQuery)中,解释了获取视口高度和宽度的方法。在本文档中,“视口”是我的想法,但不是jQuery文档中解释的那个。
===============================================
最近编辑:
当我在计算机中打开脱机html文件时,它只会给出错误的答案3588
。当我将html文件上传到我的博客并对其进行测试时,它会给出预期的正确答案667
。打开脱机文件(file://)和在线html文件(http://)之间有什么不同吗?
我的测试html文件的简短版本。
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div style="height:3500px; background:rgb(200,200,255)" id="result"></div>
<script>
$("#result").html("$(window).height():? "+$(window).height());
</script>
它仍然提供
$(window).height():? 3516
仅限离线。
答案 0 :(得分:0)
我不确定这是一个错误还是行为的预期变化,但你所描述的内容确实发生在较新的jquery版本中。您可以使用 window.innerHeight 代替。 它是跨浏览器(IE 6 +)