- CSS 教程
- CSS - 首页
- CSS - 路线图
- CSS - 简介
- CSS - 语法
- CSS - 选择器
- CSS - 导入
- CSS - 度量单位
- CSS - 颜色
- CSS - 背景
- CSS - 字体
- CSS - 文本
- CSS - 图片
- CSS - 链接
- CSS - 表格
- CSS - 边框
- CSS - 块级边框
- CSS - 内联边框
- CSS - 外边距
- CSS - 列表
- CSS - 内边距
- CSS - 光标
- CSS - 轮廓
- CSS - 尺寸
- CSS - 滚动条
- CSS - 内联块
- CSS - 下拉菜单
- CSS - 可见性
- CSS - 溢出
- CSS - 清除浮动
- CSS - 浮动
- CSS - 箭头
- CSS - 调整大小
- CSS - 引号
- CSS - 顺序
- CSS - 定位
- CSS - 连字符
- CSS - 悬停
- CSS - 显示
- CSS - 聚焦
- CSS - 缩放
- CSS - 位移
- CSS - 高度
- CSS - 连字符字符
- CSS - 宽度
- CSS - 不透明度
- CSS - z-index
- CSS - 底部
- CSS - 导航栏
- CSS - 叠加层
- CSS - 表单
- CSS - 对齐
- CSS - 图标
- CSS - 图片库
- CSS - 注释
- CSS - 加载器
- CSS - 属性选择器
- CSS - 组合器
- CSS - 根元素
- CSS - 盒模型
- CSS - 计数器
- CSS - 剪裁
- CSS - 书写模式
- CSS - Unicode 双向算法
- CSS - min-content
- CSS - all
- CSS - inset
- CSS - isolation
- CSS - overscroll
- CSS - justify-items
- CSS - justify-self
- CSS - tab-size
- CSS - pointer-events
- CSS - place-content
- CSS - place-items
- CSS - place-self
- CSS - max-block-size
- CSS - min-block-size
- CSS - mix-blend-mode
- CSS - max-inline-size
- CSS - min-inline-size
- CSS - offset
- CSS - accent-color
- CSS - user-select
- CSS 高级
- CSS - 网格
- CSS - 网格布局
- CSS - Flexbox
- CSS - 可见性
- CSS - 定位
- CSS - 层
- CSS - 伪类
- CSS - 伪元素
- CSS - @规则
- CSS - 文字效果
- CSS - 分页媒体
- CSS - 打印
- CSS - 布局
- CSS - 验证
- CSS - 图片精灵
- CSS - !important
- CSS - 数据类型
- CSS3 教程
- CSS3 - 教程
- CSS - 圆角
- CSS - 边框图片
- CSS - 多重背景
- CSS - 颜色
- CSS - 渐变
- CSS - 盒阴影
- CSS - 盒装饰中断
- CSS - 光标颜色
- CSS - 文本阴影
- CSS - 文本
- CSS - 二维变换
- CSS - 三维变换
- CSS - 过渡
- CSS - 动画
- CSS - 多列
- CSS - 盒尺寸
- CSS - 工具提示
- CSS - 按钮
- CSS - 分页
- CSS - 变量
- CSS - 媒体查询
- CSS - 函数
- CSS - 数学函数
- CSS - 遮罩
- CSS - 形状
- CSS - 样式图片
- CSS - 特异性
- CSS - 自定义属性
- CSS 响应式
- CSS RWD - 简介
- CSS RWD - 视口
- CSS RWD - 网格视图
- CSS RWD - 媒体查询
- CSS RWD - 图片
- CSS RWD - 视频
- CSS RWD - 框架
- CSS 工具
- CSS - PX到EM转换器
- CSS - 颜色选择器和动画
- CSS 资源
- CSS - 有用资源
- CSS - 讨论
CSS - 动画组合属性
CSS 属性 `animation-composition` 定义了当多个动画同时作用于同一属性时要应用的复合操作。
在 CSS 动画中,`@keyframes` 针对的属性具有关联的效果堆栈。
效果堆栈的值是由 CSS 样式规则中的底层属性值与关键帧中属性的效果值组合产生的。
`animation-composition` 属性定义了为特定属性组合这些值的方法。
可能的值
`replace` - 默认值为效果值,优先于属性的底层值。
`add` - 效果值通过加法运算增加现有属性值。对于加法运算不满足交换律的动画类型,操作数的顺序为基值后跟效果值。
`accumulate` - 效果值和底层值合并。对于加法运算不满足交换律的动画类型,操作数的顺序为基值后跟效果值。
语法
animation-composition = <single-animation-composition># <single-animation-composition> = replace | add | accumulate
应用于
所有 HTML 元素。
CSS animation-composition - replace 值
以下示例演示了在 `animation-composition` 中使用 `replace` 值。`replace` 组合 ( `#replace-demo` ) 会导致盒子在每次动画迭代开始时重置到其起始位置,并完全替换先前状态。
<html> <head> <style> @keyframes moveRight { 0%, 100% { transform: translateX(0); background-color: lightblue; } 50% { transform: translateX(100px); background-color: lightcoral; } } .box { width: 100px; height: 100px; margin: 20px; display: inline-block; animation-duration: 2s; animation-iteration-count: infinite; border: 2px solid #333; } #replace-demo { animation-name: moveRight; animation-composition: replace; } .container { text-align: center; margin-top: 50px; } .label { font-weight: bold; margin-bottom: 10px; } </style> </head> <body> <div class="container"> <div class="label">Replace Composition</div> <div class="box" id="replace-demo"></div> </div> </body> </html>
CSS animation-composition - add 值
以下示例演示了在 `animation-composition` 中使用 `add` 值。`add` 组合 ( `#add-demo` ) 会产生累加效果,其中盒子在每次迭代中都会进一步向右移动,因为位移是累积的。
<html> <head> <style> @keyframes moveRight { 0%, 100% { transform: translateX(0); background-color: lightblue; } 50% { transform: translateX(100px); background-color: lightcoral; } } .box { width: 100px; height: 100px; margin: 20px; display: inline-block; animation-duration: 2s; animation-iteration-count: infinite; border: 2px solid #333; } #add-demo { animation-name: moveRight; animation-composition: add; } .container { text-align: center; margin-top: 50px; } .label { font-weight: bold; margin-bottom: 10px; } </style> </head> <body> <div class="container"> <div class="label">Add Composition</div> <div class="box" id="add-demo"></div> </div> </body> </html>
CSS animation-composition - accumulate 值
以下示例演示了在 `animation-composition` 中使用 `accumulate` 值。`accumulate` 组合 ( `#accumulate-demo` ) 也累积变换,但与 `add` 不同,它保留了先前的状态而无需重置,导致在多次迭代中连续累积平移。
<html> <head> <style> @keyframes moveRight { 0%, 100% { transform: translateX(0); background-color: lightblue; } 50% { transform: translateX(100px); background-color: lightcoral; } } .box { width: 100px; height: 100px; margin: 20px; display: inline-block; animation-duration: 2s; animation-iteration-count: infinite; border: 2px solid #333; } #accumulate-demo { animation-name: moveRight; animation-composition: accumulate; } .container { text-align: center; margin-top: 50px; } .label { font-weight: bold; margin-bottom: 10px; } </style> </head> <body> <div class="container"> <div class="label">Accumulate Composition</div> <div class="box" id="accumulate-demo"></div> </div> </body> </html>
广告