html offset怎么设置,HTML 中的 offset、client、scroll 问题 - 文章教程

一、scroll

1.scrollTop

Element.scrollTop 属性可以获取或设置一个元素的内容垂直滚动的像素数。

一个元素的 scrollTop 值是:这个元素的顶部(到)它的可见内容的顶部之间的距离。

当一个元素没有产生垂直方向的滚动条,那么它的scrollTop 值为0。

3d6219910eb580233577c4b4590c2e0a.png

2.scrollHeight

Element.scrolllHeight 这个只读属性是一个元素内容的度量,包括由于益处导致的视图中不可见内容。

scrollHeight 的值等于该元素在不使用滚动条的情况下为了适应视口中所有内容所需要的最小高度。

没有垂直滚动条的情况下,scrollHeight 值与元素视图填充所有内容所需要的最小值 clientHeight 相同。包括元素的 padding,但不包括元素的 border 和 margin。

注意:该属性将会对值四舍五入取整。如果需要小数值,使用:Element.getBoundingClientRect()

222ca9d133b88ebb5a5af0cc06a2c4db.png

问题与解决方案:判定元素是否滚动到底

如果元素滚动到底,下面等式返回 true,没有则返回 false

element.scrollHeight - element.scrolllTop === element.clientHeighht

3. scrollLeft

Element.scrollLeft 属性可以获取或设置一个元素的滚动条到元素左边的距离。

一个元素的 scrollLeft 值是:这个元素的顶部(到)它的可见内容的顶部之间的距离。 当一个元素没有产生水平方向的滚动条,那么它的 scrollLeft 值为0。

设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离对比 scrollTop 即可

4.scrollWidth

元素的 scrollWidth只读属性以 px 为单位返回元素的内容区域宽度或元素的本身的宽度中更大的那个值。

若元素的宽度大于其内容的区域(例如,元素存在滚动条时), scrollWidth 的值要大于 clientWidth。

元素内容 + padding + (盒子一侧外边距)

二、client

1.clientTop

只读

一个元素顶部边框的宽度(以像素表示)。

a4999a6d6b27a80bf0cb94e889fb9d3f.png

2.clientHeight

这个属性是只读属性,对于没有定义 CSS 或者内联布局盒子的元素为 0,否则,它是元素内部的高度(单位像素)包含内边距,但不包括水平滚动条、边框和外边距。

9716777987e116ddfbb0cbed1df923b2.png

3.clientLeft

只读

表示一个元素的左边框的宽度,以像素表示。

4.clientWidth

Element.clientWidth 属性表示元素的内部宽度,以像素计。该属性包括内边距,但不包括垂直滚动条(如果有)、边框和外边距。

元素内容 + padding

三、offset

1.offsetTop

HTMLElement.offsetTop 为只读属性,它返回当前元素相对于其 offsetParent 元素的顶部的距离。

离他最近的定位级父元素

0aeedfbe6f944700b81f1f4bf0ca590e.png

2.offsetHeight

HTMLElement.offsetHeight 是一个只读属性,它返回该元素的像素高度,高度包含该元素的垂直内边距和边框,且是一个整数。

94b03add45375196976063c2104a5f07.png

3.offsetLeft

HTMLElement.offsetLeft 是一个只读属性,返回当前元素左上角相对于 HTMLElement.offsetParent 节点的左边界偏移的像素值。

4.offsetWidth

HTMLElement.offsetWidth 是一个只读属性,返回一个元素的布局宽度。

元素内容 + padding + border

5.offsetParent

HTMLElement.offsetParent 是一个只读属性,返回一个指向最近的(closest,指包含层级上的最近)包含该元素的定位元素。 如果没有定位的元素,则 offsetParent 为最近的 table, table cell 或根元素(标准模式下为 html;quirks 模式下为 body)。 当元素的 style.display 设置为 "none" 时,offsetParent 返回 null。 offsetParent 很有用,因为 offsetTop 和 offsetLeft 都是相对于其内边距边界的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值