📅  最后修改于: 2023-12-03 15:00:09.948000             🧑  作者: Mango
在CSS中,动画(animation)和过渡(transition)是两种常用的操作,它们可以让网页中的元素动起来,增加交互性和视觉效果。但是它们有一些不同的特性和使用方式,下面我们来仔细了解一下。
动画是指元素从一个状态逐渐变化到另一个状态的过程,可以设置多个关键帧(keyframes),来控制不同时间点的状态。动画通常需要定义一些关键字,包括动画名称、执行时间、触发方式等等。
/* 定义动画 */
@keyframes 动画名称 {
from {
/* 初始状态 */
}
to {
/* 结束状态 */
}
}
/* 使用动画 */
元素选择器 {
animation: 动画名称 动画时长 动画速度 动画延迟次数 动画方向 动画填充模式;
}
@keyframes
: 定义一个动画,包括关键帧中的不同状态和对应的时间点。from
: 定义动画开始的状态。to
: 定义动画结束的状态。animation
: 指定动画的名称、时长、速度、延迟、方向和填充模式等属性。以下示例展示了一个通过动画实现的图标加载效果:
@keyframes loading {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
.loading-icon {
animation: loading 1s infinite linear;
}
过渡指的是单个属性的变化,在元素发生变化时,平滑地从一个状态过渡到另一个状态。它可以控制元素的过渡时间、延迟和触发方式等属性。
/* 定义过渡 */
元素选择器 {
transition: 属性名 过渡时长 过渡速度 过渡延迟;
}
/* 触发过渡 */
元素选择器:hover {
属性名: 属性值;
}
transition
: 定义一个过渡,包括要过渡的属性、过渡时间、速度和延迟等属性。属性名
: 定义要过渡的属性。属性值
: 过渡后的属性值。以下示例展示了一个通过过渡实现的鼠标悬停效果:
button {
background-color: #007bff;
color: #fff;
padding: 10px 20px;
border-radius: 5px;
transition: background-color 0.3s ease;
}
button:hover {
background-color: #0062cc;
}