javascript scrollbar滚动条相关属性

本文深入探讨了网页中与滚动和DOM元素位置相关的各种属性,包括window.innerHeight, pageXOffset/pageYOffset, scrollHeight/scrollTop以及getBoundingClientRect()等。详细解析了这些属性在不同浏览器环境下的表现和应用,以及如何利用它们来判断DOM元素是否在可视区域内。
摘要由CSDN通过智能技术生成

window.innerHeight  表示浏览器可见或可用高度

window.pageXOffset 和 window.pageYOffset 属性返回文档在窗口左上角水平和垂直方向滚动的像素。

pageXOffset 和 pageYOffset 属性相等于 scrollX 和 scrollY 属性。

// 所有浏览器,除了 IE9 及更早版本

水平滚动: " + window.pageXOffset ;

垂直滚动: " + window.pageYOffset;

// IE9 及更早版本

"水平滚动: " + document.documentElement.scrollLeft ;

垂直滚动: " + document.documentElement.scrollTop;

scrollHeight和scrollTop属性只有DOM元素才有,window/document没有

element.getBoundingClientRect();返回一组用于描述边框的只读属性——left、top、right和bottom,单位为像素,如下图

当计算边界矩形时,会考虑视口区域(或其他可滚动元素)内的滚动操作,也就是说,当滚动位置发生了改变,top和left属性值就会随之立即发生变化(因此,它们的值是相对于视口的,而不是绝对的)。如果你需要获得相对于整个网页左上角定位的属性值,那么只要给top、left属性值加上当前的滚动位置(通过window.scrollX和window.scrollY),这样就可以获取与当前的滚动位置无关的值。

为了跨浏览器兼容,请使用 window.pageXOffset 和 window.pageYOffset 代替 window.scrollX 和 window.scrollY。

附:

dom 从可视窗口消失计算

dom.getBoundingClientRect().top - window.document.body.clientTop < 0 则从上方消失

dom.getBoundingClientRect().top - window.document.body.clientTop > window.innerHeight  则从下方完全消失

如果要计算刚开始消失,还需要dom的高度 如下:

 dom.getBoundingClientRect().top - window.document.body.clientTop > window.innerHeight - dom.height

绝对定位某个dom位置

left = dom.getBoundingClientRect().left + window.pageXOffset - window.document.body.clientLeft

top = dom.getBoundingClientRect().top + window.pageYOffset - window.document.body.clientTop

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值