以下是关键问题: 当滚动条存在时,如何获得元素的精确偏移(在本例中为文本框)? 最好全部在的JavaScript。
我有一个页面会溢出浏览器窗口的高度,这意味着会有滚动条。我在整个页面中都有文本框,其中链接了onblur事件。 Onblur它将验证textobx的价值。如果数据无效。如果没有,那么它将/应该在文本框顶部移动一个语音气泡,并显示错误消息。 element.offsettop似乎没有考虑页面上可能出现的任何滚动条。
谢谢你!如果你不明白我的要求,请告诉我。编辑:
有人可以帮我找到文件内容的高度。不是窗口高度而是文档内容高度所以它还包括带滚动条的高度?谢谢!
答案 0 :(得分:6)
文档大小是浏览器兼容性的噩梦,因为尽管所有浏览器都公开了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 );