#优质博文 #前端 #css
Stacked Transforms
author Chris Coyier
Stacked Transforms
AI 摘要:本文通过一个故事化的叙述方式,探讨了 CSS 中的 transform 属性和 animation-composition 属性的行为与应用。作者从参加 CSS Day 活动时对 animation-composition 的初步接触开始,逐步深入到 CSS 变换的堆叠机制以及动画组合的不同模式(如 replace、add 和 accumulate),通过代码示例和个人实验,清晰地解释了这些属性如何影响元素的变换和动画效果。
1. 引言与背景:作者以参加 CSS Day 活动为切入点,提到在活动中接触到 animation-composition 属性,并通过阅读相关博文和 MDN 文档逐步了解其功能。
2. CSS Transform 基础与堆叠机制:
介绍了 transform 属性支持多个值(如 translateX 和 rotate)以空格分隔的方式应用,并按顺序逐一执行的特点。通过代码示例(如 transform: translateX(50px) rotate(20deg) translateX(50px)),解释了变换值的顺序执行逻辑,并非简单合并。
3. Animation-Composition 的默认行为(replace):
阐述了 animation-composition 的默认值 replace ,即在动画 @keyframes 中定义的变换会覆盖元素上已有的 transform 属性,导致动画从 @keyframes 定义的起点开始。
4. Animation-Composition 的其他模式(add 和 accumulate):
• add 模式:动画变换会附加到已有变换的末尾,形成一个变换列表(如 translateX(50px) rotate(20deg) translateX(100px))。
• accumulate 模式:动画变换会与已有变换的同类型值累加(如 translateX(50px) 加上 translateX(100px) 变为 translateX(150px))。
通过代码和注释详细对比了两者的不同效果。
5. 扩展应用与个人感悟:
作者通过一个“turtle”示例(受童年 Logo 编程语言启发),展示了如何通过动态添加 transform 值实现类似路径移动的效果。同时提到 animation-composition 的行为不仅适用于 transform,也适用于其他属性如 opacity。最后,作者表达了对这些技术的兴趣,并认为它们在未来项目中会有实用价值。
author Chris Coyier