CSS动画是一种使用CSS(层叠样式表)来创建动画效果的技术。通过CSS动画,可以控制元素的属性(如位置、大小、颜色等)随时间变化,从而实现各种动态效果。
@keyframes
规则定义动画的关键帧,然后应用到元素上。transition
属性定义元素从一种状态过渡到另一种状态的效果。CSS动画广泛应用于网页设计中,如页面加载动画、按钮点击效果、轮播图、导航菜单等。
以下是一个简单的CSS动画示例,当动画完成后显示文本:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS Animation Example</title>
<style>
.box {
width: 100px;
height: 100px;
background-color: red;
animation: move 2s linear forwards;
}
@keyframes move {
from {
transform: translateX(0);
}
to {
transform: translateX(200px);
}
}
.text {
display: none;
}
.box.complete {
animation-play-state: paused;
}
.box.complete + .text {
display: block;
}
</style>
</head>
<body>
<div class="box"></div>
<div class="text">动画完成</div>
<script>
const box = document.querySelector('.box');
box.addEventListener('animationend', () => {
box.classList.add('complete');
});
</script>
</body>
</html>
.box
类定义了一个红色的方块,并应用了一个名为move
的动画,持续时间为2秒,动画结束后保持最终状态(forwards
)。@keyframes move
定义了动画的关键帧,从初始位置移动到200px的位置。.text
类默认是隐藏的(display: none
)。.box
完成动画后,添加.complete
类,暂停动画并显示文本。.box
的animationend
事件,当动画结束时,添加.complete
类。通过这种方式,可以在CSS动画完成后显示文本,提升用户体验。
领取专属 10元无门槛券
手把手带您无忧上云