跳到主要内容
界面图谱Interface Atlas
☰
EN
动效Motion / Scroll

滚动显现

Scroll Reveal

别名:滚动显现滚动淡入进入视口动画滑到那里才出现滚动出现scroll into view animation

这是什么

元素滚动进入视口时才播放淡入、上浮或滑入动画,之前保持隐藏或占位。 把"一次性呈现全部内容"变成"随阅读节奏逐段揭示",让长页面的信息 更有秩序感。通常由 IntersectionObserver 触发,只播一次。

交互实验室

试一试,再决定怎么用

正在加载演示…

✓ 适用场景

  • 长落地页的分区内容逐段呈现
  • 文章、案例展示等线性阅读内容
  • 需要引导视线自上而下移动

✕ 不适用场景

  • 用户要找的东西被藏进动画(迟到即伤害)
  • 表单、价格等决策关键信息
  • 整页元素全部滚动显现(等待感堆积)

常见形式

淡入上浮

Fade up

opacity 0→1 + translateY(24px→0),最常用

侧向滑入

Slide in

从左右滑入,适合图文交错布局

缩放浮现

Scale in

从 0.92 放大到 1,卡片与图片适用

实现要点

IntersectionObserveropacitytransform: translateYtransition

IntersectionObserver 观察目标元素,进入视口(threshold 0.15~0.25)时 加 .revealed 类触发 transition:opacity 0→1、translateY(24px)→0, 600ms ease-out,只触发一次后 unobserve。动画时长乘以一个可调速度变量。 初始隐藏状态会导致无 JS 时不显示,务必提供 no-js 回退; 尊重 prefers-reduced-motion(直接显示)。

交给 AI

四层 Prompt 从「它是什么」一路写到「可直接执行的任务」;切到 Agent 任务层,还能叠加视觉风格与附加要求,再一键复制给你的 Coding Agent。

为项目落地页的分区内容添加滚动显现动画。

先检查是否已有 reveal/observer 工具,复用而非新写。
要求:
- 进入视口淡入上浮 24px,600ms,只播一次
- 同屏元素 80ms 错峰
- 无 JS 或 SSR 首屏内容不被隐藏
- 尊重 prefers-reduced-motion
- 不引入新依赖
完成后运行现有检查,说明修改文件。

附加要求:
- 支持深色模式
- 尊重 prefers-reduced-motion
- 不新增依赖
- 完成后运行现有检查并列出修改文件

可直接交给 Coding Agent,可叠加风格与附加要求

相关概念

懒加载Lazy Loading

用"推迟加载"的方式处理暂不在视口内的资源:图片、列表分块、组件等在接近或进入可视区域时才真正请求和渲染。 首屏只承担可见部分的开销,配合占位骨架避免突然撑开布局,让长页面既快又稳。

交互模式搭配使用
无限滚动Infinite Scroll

用"滚动到底自动追加下一页"取代传统分页:用户持续下滑,新内容不断出现, 底部以加载指示或哨兵元素衔接。它解决的是浏览节奏被打断的问题—— 用户不必寻找"下一页"按钮,注意力始终停留在内容流上,长列表被拆成一次次无感的追加。

交互模式搭配使用
文字显现Text Reveal

把标题或段落按行、按词逐个显现,而不是整块淡入。文字"被说出来"的节奏感让信息有先后与分量, 常用于落地页首屏大标题、章节开场与滚动叙事, 通常进入视口时触发一次。

动效相似概念
逐项浮现Stagger Reveal

一组元素不一起出现,而是按固定间隔依次淡入或上浮,像点名一样逐个到位。 间隔 40~120ms 即可让列表"有秩序地醒来", 比整块淡入更有生命感,也比真实逐项加载等待感更低。

动效相似概念

参考来源

Markdown 版(给 Agent) · JSON