博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学习日记 - position: sticky ,实现“粘性”效果
阅读量:6827 次
发布时间:2019-06-26

本文共 891 字,大约阅读时间需要 2 分钟。

在过去的日子里,一个“粘性”的实现需要编写一个复杂的滚动处理程序来计算元素的大小。试图优化处理程序导致“粘住”和“不粘贴”中的细微延迟,这导致了抖动。JavaScript实现在性能方面也滞后,特别是在 Element.getBoundingClientRect() 使用时。

position 的属性值

{    position: static; /*默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。*/    position: relative; /*生成相对定位的元素,相对于其正常位置进行定位。*/    position: absolute;  /*生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。*/    position: fixed; /*生成绝对定位的元素,相对于浏览器窗口进行定位。*/    position: inherit; /*规定应该从父元素继承 position 属性的值。*/    position: initial; /*关键字用于设置 CSS 属性为它的默认值,可作用于任何 CSS 样式。(IE 不支持该关键字)*/    position: unset; /*关键字我们可以简单理解为不设置。其实,它是关键字 initial 和 inherit 的组合。*/    position: sticky; /*它可以通过指示偏移量来实现“粘性”*/}复制代码

sticky : 盒位置根据正常流计算(这称为正常流动中的位置),然后相对于该元素在流中的 flow root(BFC)和 containing block(最近的块级祖先元素)定位。在所有情况下(即便被定位元素为 table 时),该元素定位均不对后续元素造成影响。当元素 B 被粘性定位时,后续元素的位置仍按照 B 未定位时的位置来确定。position: sticky 对 table 元素的效果与 position: relative 相同。

兼容性

例子

效果图:

转载地址:http://fvfkl.baihongyu.com/

你可能感兴趣的文章
USB1.1 时间帧管理
查看>>
Number of Islands(200)
查看>>
第一个rails简单示例
查看>>
编译安装go语言(ubuntu)
查看>>
CF988D Points and Powers of Two 数学结论题 规律 第十题
查看>>
Quartz_理解2
查看>>
为msysgit增加vim语法高亮文件
查看>>
Python collections.OrderedDict解决dict元素顺序问题
查看>>
python-selenium上传文件
查看>>
51nod 1441:士兵的数字游戏
查看>>
UVA 11573 Ocean Currents
查看>>
serviceCapture 和firefox 模拟局域网慢网速
查看>>
hdu4908(中位数)
查看>>
别的程序员是怎么读你的简历的
查看>>
创建型设计模式之单例设计模式
查看>>
Jenkins配置发送邮件步骤
查看>>
oracle 游标
查看>>
iOS 之 KVC KVO
查看>>
android opengl es 2.0
查看>>
Java面试题
查看>>