千家信息网

CSS怎么实现吸附效果

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要讲解了"CSS怎么实现吸附效果",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"CSS怎么实现吸附效果"吧!原理在 jQuery 时代就有很多
千家信息网最后更新 2026年11月03日CSS怎么实现吸附效果

这篇文章主要讲解了"CSS怎么实现吸附效果",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"CSS怎么实现吸附效果"吧!

原理

在 jQuery 时代就有很多吸附效果插件了,现在常用的三大前端框架也有自身第三方的吸附效果组件。它们都有着共通的实现原理:监听scroll事件,判断scrollTop和目标元素的位置范围,符合条件则将目标元素的position声明为fixed,令目标元素相对于浏览器窗口进行定位,让用户看上去就像钉在浏览器指定位置上。

javascript 实现吸附效果的代码在网上一搜一大堆,更何况笔者喜欢耍 CSS ,在此就不贴相关的JS代码了。本文为各位同学推荐一个很少见很少用的 CSS 属性:position:sticky。简单的「两行CSS核心代码」就能完成「十多行JS核心代码」的功能,何乐而不为呢。

实现

简单回顾position常用的值,怎样用就不说了,各位同学应该都熟透了。

取值功能版本
「inherit」继承2
「static」标准流2
「relative」相对定位2
「absolute」绝对定位2
「fixed」固定定位2
「sticky」粘性定位3

当值为sticky时将元素变成粘性定位。「粘性定位」是相对定位和固定定位的合体,元素在特定阈值跨越前为相对定位,跨越后为固定定位。

主要是为了推广知识点,直接上代码,样式就不细磨了,将就看吧。

  • Top 1
  • Top 2
  • Normal
  • Bottom 1
  • Bottom 2
.ads-position {    overflow: auto;    position: relative;    width: 400px;    height: 280px;    outline: 1px solid #3c9;    ul {        padding: 200px 0;    }    li {        position: sticky;        height: 40px;        line-height: 40px;        text-align: center;        color: #fff;        &:nth-child(1) {            top: 0;            z-index: 9;            background-color: #f66;        }        &:nth-child(2) {            top: 40px;            z-index: 9;            background-color: #66f;        }        &:nth-child(3) {            background-color: #f90;        }        &:nth-child(4) {            bottom: 0;            z-index: 9;            background-color: #09f;        }        &:nth-child(5) {            bottom: 40px;            z-index: 9;            background-color: #3c9;        }    }}

最终效果如下。两行CSS核心代码分别是position:sticky和top/bottom:npx。上述Demo里5个节点都声明了position:sticky,但由于top/bottom赋值有所不同就产生了不同的吸附效果。

细心的同学可能发现这些元素在某些滚动时刻处于相对定位,在特定滚动时刻就处于固定定位。

  • 第1个

  • :top为0px,滚动到容器顶部就固定

  • 第2个

  • :top为40px,滚动到距离容器顶部40px就固定

  • 第3个

  • :没有声明top/bottom,就一直保持相对定位

  • 第4个

  • :bottom为40px,滚动到距离容器底部40px就固定

  • 第5个

  • :bottom为0px,滚动到容器底部就固定

当然,换成left和right也一样能实现横向的吸附效果。

注意

粘性定位的参照物并不一定是position:fixed。

当目标元素的任意祖先元素都未声明position:relative|absolute|fixed|sticky,才与position:fixed表现一致。

当离目标元素最近的祖先元素声明了position:relative|absolute|fixed|sticky,目标元素就相对该祖先元素进行粘性定位。

确认参照物跟position:absolute一致。

兼容

兼容性勉强还行,近2年发版的浏览器都能支持,Safari和Firefox的兼容性还是挺赞的。有吸附效果需求的同学建议一试,要兼容IExplorer就算了。

感谢各位的阅读,以上就是"CSS怎么实现吸附效果"的内容了,经过本文的学习后,相信大家对CSS怎么实现吸附效果这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

定位 元素 效果 吸附 代码 目标 粘性 同学 容器 核心 浏览器 祖先 学习 浏览 不同 一致 位置 兼容性 内容 功能 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海挚品互联网科技有限公司 狮子座互联网科技有限公司 互联网金融科技平台 汇久创客互联网科技 上海万想互联网科技 甘肃拓世互联网科技有限公司 衡水科技产业互联网平台 互联网实体化科技化 农村开互联网科技讲堂 西藏七维空间互联网科技有限公司 广州优美互联网科技 互联网系的金融科技公司 想开互联网科技公司怎么样 民营互联网公司国防科技 畅思互联网科技 东莞新华互联网科技学校 朱啸虎曾投资哪些互联网科技企业 互联网科技快讯热点 科技互联网专业工作会议发言稿 广州全民伙伴互联网科技有限公司 互联网金融科技 互联网科技行业发展 涨乐互联网科技 北京互联网科技有限公司 互联网 科技创业 互联网科技咨询 农村开互联网科技讲堂 厦门比较好的科技互联网公司 云鲸互联网络科技有限公司 宁波允成互联网科技有限公司
0