CSS 滚动驱动的动画
**CSS 滚动驱动动画**模块提供了构建在CSS 动画模块和Web 动画 API之上的功能。它允许您根据基于滚动的时序而不是默认的基于时间的文档时序来动画化属性值。这意味着您可以通过滚动可滚动元素来动画化元素,而不仅仅是通过时间的推移。
有两种类型的基于滚动的时序
- 滚动进度时序:通过从上到下(或从左到右)以及反向滚动可滚动元素(滚动器)来推进此时序。滚动范围中的位置转换为进度百分比——开始时为 0%,结束时为 100%。
- 视图进度时序:基于滚动器内元素(称为主体)的可见性变化来推进此时序。滚动器内主体的可见性作为进度百分比进行跟踪——默认情况下,当主体首先在滚动器的某个边缘可见时,时序为 0%,当它到达相对边缘时,时序为 100%。
当这两个时序之一应用于动画元素时,动画将沿该时序进行,而不是遵循默认的基于时间的时序。
可以调整动画在滚动进度和视图进度时序上的有效放置,即,您可以定义动画开始和结束的位置。这可以通过几种不同的方式完成
- 可以将开始和结束动画范围值应用于动画,以调整动画沿时序的开始和结束位置。
- 视图进度时序可以应用开始和/或结束内边距(或外边距),以调整视口(有关更多详细信息,请参阅滚动容器)的位置,其中主体元素被视为可见。换句话说,这允许您指定开始和/或结束内边距(或外边距)值,这些值会偏移时序本身的位置。
滚动驱动的动画示例
您可以在滚动驱动动画工具和演示中找到几个显示滚动驱动动画运行的工具和演示。
参考
属性
设置将控制动画进度的时序,并设置其沿该时序的附着范围
定义命名滚动进度时序
定义命名视图进度时序
修改时序范围
At规则
CSS 滚动驱动动画增加了在@keyframes
块中包含<timeline-range-name>
的能力,以便在命名时序范围内特定位置放置关键帧。
函数
用于定义匿名滚动进度时序和匿名视图进度时序(即由浏览器隐式定义,而不是使用scroll-timeline-*
和view-timeline-*
属性显式命名和定义)的animation-timeline
属性的可能值
JavaScript 特性
规范
规范 |
---|
滚动驱动动画 |
CSS 动画 Level 2 |
Web 动画 Level 2 |
另请参阅
- 使用滚动驱动的动画在滚动时为元素设置动画 在 developer.chrome.com 上
- CSS 动画
- Web 动画 API