js获取页面元素距离浏览器工做区顶端的距离

先介绍几个属性:(暂时只测了IE和firefox,实际上我工做中用到的最多的是chrome)javascript

网页被卷起来的高度/宽度(即浏览器滚动条滚动后隐藏的页面内容高度)html

(javascript)        document.documentElement.scrollTop //firefoxjava

(javascript)        document.documentElement.scrollLeft //firefoxjquery

(javascript)        document.body.scrollTop //IEchrome

(javascript)        document.body.scrollLeft //IE浏览器

(jqurey)             $(window).scrollTop() spa

(jqurey)             $(window).scrollLeft()firefox

网页工做区域的高度和宽度code

(javascript)       document.documentElement.clientHeight// IE firefox       htm

(jqurey)             $(window).height()

元素距离文档顶端和左边的偏移值

(javascript)        DOM元素对象.offsetTop //IE firefox

(javascript)        DOM元素对象.offsetLeft //IE firefox

(jqurey)             jq对象.offset().top

(jqurey)             jq对象.offset().left

 

获取页面元素距离浏览器工做区顶端的距离

页面元素距离浏览器工做区顶端的距离 = 元素距离文档顶端偏移值 - 网页被卷起来的高度

即:

页面元素距离浏览器工做区顶端的距离 = DOM元素对象.offsetTop - document.documentElement.scrollTop 

 

举个应用例子:(我的习惯用jqurey,免去兼容性烦恼)

利用 页面元素距离浏览器工做区顶端/左端的距离 来实现一个提示框在页面不一样位置时候保证提示信息显示的正确位置,如图所示 附代码

 

可见无论输入框在哪里,提示框信息永远都显示在正确的位置,而不会在弹出提示框时候被挡住

code(上面例子的html页面,需引用jquery-1.8.2.min.js)