用途:用 CSS Scroll-Driven Animations API 实现声明式、与滚动位置联动的动画,无需 JavaScript 即可获得较流畅的滚动效果。资料称其支持 Chrome 115+、Edge 115+、Safari 18.4+,Firefox 暂不支持(开发中)。
主要能力:滚动进度指示(阅读进度条)、无 JS 卡顿的视差效果、元素进入视口时的揭示动画、基于滚动的吸顶头部动画、滚动触发的图片/内容揭示。核心时间线有两类:scroll() 绑定滚动容器位置(0-100%),view() 绑定元素在视口中的可见性。可用 animation-range 精细控制动画起止,如 entry 0% entry 100%、cover 0% cover 100%,也支持命名滚动时间线与命名视图时间线(scroll-timeline-name、view-timeline-name、timeline-scope)。
使用方式:CSS 侧通过 animation-timeline 与 animation-range 配合 @keyframes 使用;JS 侧可用 new ScrollTimeline({source, axis}) 与 new ViewTimeline({subject, axis, inset}),再传给 element.animate 的 timeline、rangeStart、rangeEnd。React 中可用 useRef + useEffect 封装,先做特性检测(如 'ScrollTimeline' in window),不支持时回退到 IntersectionObserver。
限制与注意:只应动画 transform 与 opacity,避免动画 width、height、margin 等触发布局的属性;will-change 需谨慎使用;不要在不可滚动容器上设置滚动时间线;不要缺少回退方案;避免过度复杂的动画链。可用 Chrome DevTools 的 Scroll-Driven Animations 面板调试时间线。资料还列出相关技能 motion-animation-patterns、core-web-vitals、view-transitions,以及参考文件与 React 视差组件脚本。具体安装命令与收费信息暂未提供。