跳到正文

粘性头部

Sticky Header

页面滚动时头部留在顶部,常配合「下滑隐藏、上滑出现」。

  • 又叫:
  • 吸顶导航
  • 固定顶栏
  • 滚动吸顶
  • sticky nav
  • fixed header
  • hide on scroll
展厅
布局与结构
形态
自带滚动
播放
手动触发
关键词
需要 JS / 随滚动变化 / 合成层动画 / 可以直接用
↕ 自己动手试试
L-01形态 自带滚动播放 手动触发Sticky Header

参数工作台

复制给 AI

随参数实时更新

做粘性头部(sticky header):用 position: sticky; top: 0 吸顶,滚动超过 60px 后给头部加半透明底色和 backdrop-filter: blur(8px) 与一条下边框。向下滚动时用 transform: translateY(-100%) 收起头部,向上滚动立刻显示,判定用当前 scrollY 与上一次 scrollY 比较,动画 250ms ease-out。

什么时候用

  • 长页面里希望导航和主要操作始终可用
  • 需要随时让用户看到购物车、搜索或当前章节
  • 内容很长又不想一直占着一条顶栏时,用下滑隐藏换回阅读空间

适用场景:导航 / 页面 / 滚动

推荐取值

吸附阈值
60–120px 滚动距离
出现/隐藏时长
200–300ms
吸顶后底色
半透明 + backdrop blur
滚动判定
比较当前与上一次 scrollY

别搞混

  • 和「固定定位 fixed」的区别

    position: fixed 的元素脱离文档流,需要手动给下方内容补 padding;position: sticky 仍占位,滚到阈值才吸附,父容器一结束就跟着离开。

  • 和「悬浮按钮」的区别

    悬浮按钮一直在同一个位置,和滚动无关;粘性头部是「先跟着文档走,到阈值才停住」。

容易踩的坑

  • 父级任意一层有 overflow: hidden/auto,sticky 就会失效或只在那个容器里吸附
  • sticky 元素必须有 top(或 bottom)值,否则不会吸附
  • 下滑隐藏要设阈值,刚滚一两个像素就藏起来会显得页面在抖
  • 隐藏用的是 transform: translateY(-100%),不要用 display: none,否则没有动画

无障碍降级

隐藏/出现的位移动画在 prefers-reduced-motion 下改为瞬间切换,或干脆常驻显示不做隐藏。

关键词

  • position: sticky
  • scroll direction
  • hide on scroll down
  • sticky nav
  • will-change: transform

参考

相关展品