position: sticky; 基于用户的滚动位置来定位。
2021-08-11 本文已影响0人
keknei
在做项目的过程中,我们经常会遇到一种需求,一个元素,在滚动的过程中,一旦到达某个位置,就会固定在页面的顶部,或者别的地方,我们常规的思路就是用js判断他的位置和滚动距离来做是否fixed定位
现在春天来了,position
新加了一个属性值sticky
粘性定位。
粘性定位的元素是依赖于用户的滚动,在 position:relative 与 position:fixed 定位之间切换
它的行为就像 position:relative; 而当页面滚动超出目标区域时,它的表现就像 position:fixed;,它会固定在目标位置。
元素定位表现为在跨越特定阈值前为相对定位,之后为固定定位。
这个特定阈值指的是 top, right, bottom 或 left 之一,换言之,指定 top, right, bottom 或 left 四个阈值其中之一,才可使粘性定位生效。否则其行为与相对定位相同。
举个例子
html
<p>尝试滚动页面。</p>
<p>注意: IE/Edge 15 及更早 IE 版本不支持 sticky 属性。</p>
<div class="sticky">我是粘性定位!</div>
<div style="padding-bottom:2000px">
<p>滚动我</p>
<p>来回滚动我</p>
<p>滚动我</p>
<p>来回滚动我</p>
<p>滚动我</p>
<p>来回滚动我</p>
</div>
css
div.sticky {
position: -webkit-sticky;
position: sticky;
top: 0px;
padding: 5px;
background-color: #cae8ca;
border: 2px solid #4CAF50;
}
大家实现看一下效果就知道怎么回事儿了,非常简单方便,春天啊