无需登录 数据私有 本地保存

滚动驱动动画创作台 - 基于Scroll Timeline的可视化

13
0
0
0

滚动驱动动画创作台

Scroll Timeline
点击预览区中的彩色方块可选中并配置其动画参数 滚动: 0%
动画配置 未选中

CSS 代码
/* 点击元素查看对应CSS代码 */

使用现代CSS animation-timeline: scroll() 语法,需Chrome 115+或启用实验性功能。

常见问题与知识点

Scroll Timeline 是 CSS 的新特性,允许动画不再依赖时间(秒),而是根据滚动条的滚动位置来驱动。通过 animation-timeline: scroll()animation-timeline: view(),动画的进度与页面或容器的滚动进度直接关联,实现丝滑的滚动驱动效果。它是 CSS Scroll-linked Animations 规范的一部分。

scroll() 基于滚动容器的整体滚动进度,从0%到100%映射整个可滚动范围,适合视差效果等全局动画。
view() 基于元素与视口的交叉进度,当元素进入视口时开始,离开时结束,适合滚动触发的入场/出场动画。本工具主要模拟 scroll() 的行为。

在本工具中,选中任意动画元素后,在右侧配置面板中拖动"动画起始滚动位置""动画结束滚动位置"滑块。起始位置决定动画何时开始,结束位置决定何时完成。CSS中使用 animation-range 属性来实现相同的效果,例如 animation-range: 25% 75%;

截至2025年,Chrome 115+Edge 115+ 已完整支持 Scroll Timeline。Firefox 和 Safari 仍在开发中。对于生产环境,建议使用 @supports (animation-timeline: scroll()) 进行特性检测,并配合JavaScript polyfill(如本工具演示的方式)作为降级方案。

当然!本工具支持多个动画元素各自独立配置。每个元素都可以设置不同的动画类型、触发范围和缓动函数。在CSS中,也可以为不同元素定义不同的 @keyframes 并绑定到相同的滚动时间线,实现丰富的交错动画效果。

CSS Scroll Timeline 动画运行在合成器线程上,不阻塞主线程,帧率更高、更流畅。传统JavaScript滚动监听需要在主线程计算样式,容易导致卡顿。本工具使用JS模拟是为了兼容性展示,但实际生产环境推荐优先使用原生CSS方案。