【问题标题】:get height of document content including scroll bars javascript获取文档内容的高度,包括滚动条javascript
【发布时间】:2015-03-19 11:25:11
【问题描述】:

这是关键问题:当存在滚动条时,如何获得元素(在本例中为文本框)的准确偏移顶部? javascript。

我有一个页面会溢出浏览器窗口的高度,这意味着会有滚动条。我在整个页面都有文本框,并链接了 onblur 事件。 Onblur 它将验证 textobx 的值。如果数据无效。如果不是,那么它将/应该在文本框顶部移动一个带有错误消息的气泡。 element.offsettop 似乎没有考虑页面上可能存在的任何滚动条。

谢谢!如果您不明白我在问什么,请告诉我。

编辑:

谁能帮我找出文档内容的高度。不是窗口高度而是文档内容高度,所以它还包括滚动条的高度?谢谢!

【问题讨论】:

标签: javascript html css


【解决方案1】:

文档大小是浏览器兼容性的噩梦,因为尽管所有浏览器都公开了 clientHeight 和 scrollHeight 属性,但它们并不都同意这些值的计算方式。

对于如何测试正确的高度/宽度,过去有一个复杂的最佳实践公式。这涉及到使用 document.documentElement 属性(如果可用)或回退到文档属性等等。

获取正确高度的最简单方法是获取在文档或 documentElement 上找到的所有高度值,并使用最高的值。这基本上就是 jQuery 所做的:

var body = document.body,
    html = document.documentElement;

var height = Math.max( body.scrollHeight, body.offsetHeight, 
                       html.clientHeight, html.scrollHeight, html.offsetHeight );

【讨论】:

  • 好的。谢谢你。我想我已经在其他地方看到过该代码,但现在我知道它的作用了。还有一个问题: element.offsetTop 是否考虑了可能存在的滚动条?谢谢。你一直很有帮助。我会继续做一些挖掘,看看我是否能弄清楚更多......
猜你喜欢
  • 1970-01-01
  • 2013-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-09
  • 1970-01-01
  • 2013-11-04
  • 2015-05-25
相关资源
最近更新 更多