javascript - 使用 Javascript(或 jQuery)获取实际内容高度

标签 javascript jquery html

获取文档高度的方法有很多,但由于浏览器实现不同,其中大多数(我相信)返回多个值中的最高值......大多数时候这都很好。

就我而言,页面上有许多元素,我知道这些元素的高度小于窗口和视口(viewport)的高度。我想要获取的是所有渲染元素的实际高度。

不起作用的事情(在 Firefox 中测试):

  1. $(文档).height();//给出窗口高度
  2. document.body.scrollHeight;//给出 7,它总是 7 我不知道为什么
  3. document.body.offsetHeight;//也给出 7
  4. document.documentElement.clientHeight;//有时给出窗口高度
  5. document.documentElement.scrollHeight;//给出窗口高度
  6. document.documentElement.offsetHeight;一般给出23范围内的值

目前我认为解决这个问题的方法可能是在页面底部插入一个 div ,其 height: 0 并抓取 $ (div).offset().top,但我觉得这很可能在将来的某个时候出错。

所以在我这样做之前......

当内容高度小于窗口高度时,有没有办法知道内容高度?

编辑:

人们要求澄清。这是我想要的/我得到的结果的 jsFiddle 示例。 https://jsfiddle.net/8Lu2zcw8/1/

运行该命令会导致 Win Height: 和 Doc Height 的值相同,并写入控制台。

编辑2:

我的问题是由于主体由于 float 和绝对定位的元素而未正确包装内容,正如@tim-vermaelen 在其解决方案的评论中所指出的那样。

最佳答案

我建议您使用$(document.body).height()

在 CSS 中你必须输入:

html,
body { height: 100%; }

只有在 body 元素的 body padding、margin 和 border 为 0 的情况下,这才会给出正确的结果。当直接子元素 float 或放置在绝对位置时,这些元素的高度不计算在内。因此,对于 float 元素,您始终需要清除父级来解决这些包装问题。

如果没有,您可以使用$(document.body).outerHeight(includeMargin)

关于javascript - 使用 Javascript(或 jQuery)获取实际内容高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39532252/

相关文章:

javascript - 运行命令npm start时出错

javascript - 从 css 调用图像到 javascript 并添加整数值

javascript - 如何将变量传递给另一个php文件?

javascript - 使用 Jquery 显示当前日期和时间

javascript - jquery 添加带有动态 url 的背景图片

javascript - HTML Canvas 游戏不显示

javascript - 在最后一页(或他来自的页面)重定向用户 PHP/JS

javascript - 对输入类型 ="number"使用正则表达式删除非数字

html - CSS :last-of-type selector not working as expected

javascript - "new"和直接调用生成器函数有什么区别?