文章 https://www.cnblogs.com/coco1s/p/6402723.html
核心代码
{
position: -webkit-sticky;
position: sticky;
top: 0;
}
实现原理
因为设定的阈值是 top:0 这个值表示当元素距离页面视口(Viewport,也就是fixed定位的参照)顶部距离大于0px时,元素以relative定位表现,而当元素距离页面视口小于0px时,元素表现为fixed定位,也就会固定在顶部。
距离页面顶部大于20px,表现为 position:relative
;
距离页面顶部小于20px,表现为 position:fixed
;
生效规则
设定为 position:sticky 元素的任意父节点的overflow 属性必需是visible 否则position:sticky 不会生效
如果position:sticky 元素的任意父节点定位设置为overflow:hidden 则父容器无法进行滚动,所以position:sticky 元素也不会有滚动然后固定的情况。
如果position:sticky 元素的任意父节点定位设置为 position:relative | absolute | fixed 则元素相对父元素进行定位,而不会相对viewprot 定位
https://github.com/filamentgroup/fixed-sticky
**