position:sticky粘性定位

项目中可能会遇到这样的需求:当页面某个元素滚动到顶部时,让其定位或悬浮在顶部,如下图红框区域所示:
在这里插入图片描述
在这里插入图片描述
实现以上效果的最简单方式,是使用C3提供的新属性position:sticky。然后设置top值等于顶部导航的高度即可。同理,根据效果可以设置 right,bottom,left。

MDN给出的说明:

The element is positioned according to the normal flow of the document, and then offset relative to its nearest scrolling ancestor and containing block (nearest block-level ancestor), including table-related elements, based on the values of top, right, bottom, and left. The offset does not affect the position of any other elements.

使用 top,right,bottom,left 设置定位值,滚动未超过定位值时,元素不受定位影响(即 top,right,bottom,left等设置无效)
当元素的位置将要滚动偏移越过定位值时,元素定位会变成fixed,根据设置的 top,right,bottom,left 属性定位。
设置为 sticky 的元素并未脱离文档流,不会影响相邻其他元素的正常显示

由于是新增属性,兼容性并不好:
在这里插入图片描述
所以实际开发,如果要实现这个效果,可以监听滚动事件,来动态改变定位样式,是否使用 fixed;也可以使用多个同样的元素,放在不同位置,动态切换显示与隐藏,保证同一时间只会显示一个在页面上。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梅花三

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值