#独家
absolute在顶部的元素不占滚动距离(符合预期),absolute在底部的元素却占用滚动距离(不符合预期)?

2023-07-10 0 2,408

打算使用IntersectionObserver监听内容滚动到底部/顶部,
监听的root是.scroll,
监听的target是.flag-body--topor.flag-body--bottom,
监听是符合预期的,
但是发现滚动到底部的时候,
.flag-body--bottom竟然可见并且再底部占了一块滚动距离!
(按理说position: absolute应该是不占位置的,也不应该占用滚动距离)
如果希望.flag-body--bottom不占滚动距离应该怎么处理?

元素 .flag 的去掉相对定位的属性就行了。但这样他会影响到更外部的滚动容器,也就是浏览器窗口(因为 overflow 的默认值是 visible)。

所以需要给元素 .flag 设置 overflow:hidden 这样的样式,使溢出的内容隐藏就可以解决你说的这个问题。

对于这种绝对定位元素溢出导致影响滚动容器的现象,可以看MDN上面关于这部分的解释是:

  1. CSS 尽力减少“数据损失”
  2. 控制溢出行为的属性是初始值为 visible 的 overflow 属性。这就是为什么我们可以看到溢出内容。

所以在元素 .flag 有相对定位时,flag-body--bottom 元素就会相对于 .flag 元素做偏移。那么因为 .flag 元素的 overflow 是默认值 visible 所以内容在溢出同时也会显示,导致影响到 .flag 的外部滚动容器 .scroll 元素。

如果元素 .flag 设置了 overflow:hidden 那么溢出的内容(flag-body--bottom 元素)就会被隐藏掉,自然就不会影响到外部容器 .scroll 元素了。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

1. JK下载官网所有资源来源于开发团队,加入会员即可下载使用!如有问题请联系右下角在线客服!
2. JK下载官方保障所有软件都通过人工亲测,为每位会员用户提供安全可靠的应用软件、游戏资源下载及程序开发服务。
3. JK开发团队针对会员诉求,历经多年拥有现今开发成果, 每款应用程序上线前都经过人工测试无误后提供安装使用,只为会员提供安全原创的应用。
4. PC/移动端应用下载后如遇安装使用问题请联系右下角在线客服或提交工单,一对一指导解决疑难。

JK软件下载官网 技术分享 absolute在顶部的元素不占滚动距离(符合预期),absolute在底部的元素却占用滚动距离(不符合预期)? https://www.jkxiazai.com/1955.html

JK软件应用商店是经过官方安全认证,保障正版软件平台

相关资源

官方客服团队

为您解决烦忧 - 24小时在线 专业服务