jQuery documentation http://api.jquery.com/height/说
// Returns height of browser viewport
$( window ).height();
// Returns height of HTML document
$( document ).height();但我从这两种方法中得到了相同的值。例如,( html包含溢出的带有height=about 3000px的div )
$( 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仅在脱机状态下。
发布于 2014-09-28 03:45:01
我不确定这是一个bug还是行为上的有意改变,但您所描述的确实会发生在较新的jquery版本中。您可以改用window.innerHeight。它是跨浏览器的(IE 6+)
https://stackoverflow.com/questions/23917673
复制相似问题