跳到主要内容

CSS 滚动驱动动画生成器

生成原生 CSS 滚动驱动动画 — 一个 @keyframes 块,连接到 animation-timeline: view() 或 scroll(),而不是固定时长 — 由现成预设(淡入、滑入、放大、旋转进入、显示裁剪路径)创建,支持可配置的动画范围。

输入

view() 在元素进入视口时添加动画;scroll() 将其绑定到页面滚动进度。

命名范围(entry/cover)与 view() 配对;scroll() 时间轴只理解纯百分比。

输出

CSS
 
这对您有帮助吗?

使用此工具的更多方式

REST API

curl -X POST https://api.iotools.cloud/v1/tool/css-scroll-driven-animation-generator \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "animationType": "fadeIn",
    "timelineType": "view",
    "animationRange": "entry 0% cover 100%"
  }'

替换成您账户中的密钥。工具的字段即为请求体——没有额外包装。

让 AI 代理执行

Use the IOTools `css-scroll-driven-animation-generator` tool (CSS Scroll-Driven Animation Generator) on this input:

YOUR_INPUT_HERE

将此粘贴给任何已连接 IOTools MCP 服务器的代理,再加上您的输入内容。

嵌入式小组件

<iframe
  src="https://iotools.cloud/embed/css-scroll-driven-animation-generator/"
  width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
  title="CSS 滚动驱动动画生成器 — iotools.cloud"
  sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
  allow="clipboard-write"
  style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>

把它放到您自己的页面上——免费,无需密钥,只需保留一个反向链接。

每次 API/MCP 调用费用5 积分起
需要更多积分?查看定价

也可通过

使用指南

滚动驱动动画使用原生 CSS 属性 animation-timeline 将元素的动画进度绑定到滚动位置而不是墙上时钟。设置为 view() 时,元素在进入视口时淡入、滑动、缩放、旋转或显示;设置为 scroll() 时,动画追踪页面(或滚动容器)的滚动进度 — 滚动连动进度条、视差层或显示效果,完全由合成器驱动,无需 JavaScript。

这个生成器为您构建两部分:一个 @keyframes 块,包含所选预设的正确 from/to 步骤,以及配套规则,用 animation-timelineanimation-range 连接它们以取代固定的 animation-duration。将两者都复制到您的样式表中,并将 .scroll-animate 替换为您自己的选择器。

浏览器支持

滚动驱动动画是相对较新的 CSS 功能。在撰写本文时,Chrome 和 Edge(115+)原生支持 animation-timeline: scroll()view()。Firefox 和 Safari 尚不提供默认支持,因此将其视为渐进增强:配合 @supports not (animation-timeline: view()) 块一起使用,该块直接设置元素的最终状态(to),这样不支持的浏览器仍会显示合理的静态结果,而不是元素卡在不可见或屏幕外。在生产环境中依赖此功能前,请始终查看 caniuse.com/css-scroll-timeline 获取当前状态。

使用方法

  1. 选择预设 — Fade In、Slide In(从左/右/下)、Scale Up、Rotate In 或 Reveal Clip Path。每一个都是现成的 opacity/transform/clip-path 步骤的 from/to 配对。
  2. 选择时间轴view() 在元素滚动进出视口时添加动画(最适合"滚动时显示"效果);scroll() 将动画绑定到最近滚动容器的总滚动进度(最适合进度条和视差风格效果)。
  3. 选择动画范围 — 控制时间轴的哪个部分播放动画。像 entrycover 这样的命名范围描述元素穿过视口的阶段,适用于 view();像 0% 100% 这样的纯百分比适用于任何时间轴类型。
  4. 复制生成的 CSS 并将其粘贴到样式表中,或作为 .css 文件下载。

FAQ

为什么选择器是 .scroll-animate 这是一个占位符,因此 CSS 已准备好粘贴 — 将其重命名以匹配您想要添加动画的元素。

animation-range 实际控制什么? 它将滚动时间轴的一部分映射到动画的 0%–100% 进度。例如,entry 0% cover 100% 在元素开始进入视口时启动动画,并在其完全覆盖(滚动过)该进入阶段时完成。

为什么没有 animation-duration 滚动驱动动画不在时钟上运行 — 它们的"持续时间"是您通过 animation-range 分配给它们的滚动范围的数量。设置显式持续时间不是必需的(会被时间轴机制忽略)。

在尚不支持此功能的浏览器中会发生什么? 没有支持时,animation-timeline 会被简单地忽略,因此元素保持其默认状态(from) — 通常不可见或偏移。添加一个 @supports not (animation-timeline: view()) 块,其中包含元素的最终样式作为静态回退。

我可以为 opacity 和 transform 以外的属性添加动画吗? 是的 — 任何可添加动画的 CSS 属性都可以在 @keyframes 中工作,包括此处 Reveal 预设使用的 clip-path。Transform 和 opacity 是首选,因为它们对合成器友好,在滚动期间保持流畅。

隐私

一切都在浏览器中本地运行 — 您的设置永远不会离开您的设备,也不会向服务器发送任何 CSS 进行生成。

cssscrollanimationkeyframesgeneratoranimation-timelineweb design

喜欢这些工具?去掉广告吧。

一次性付款即可永久移除您账户中的所有广告。无需订阅,不追踪。