css 语言 CSS 动画填充模式与延迟综合运用

CSS阿木 发布于 2025-06-17 7 次阅读


CSS 动画填充模式与延迟综合运用

CSS 动画是网页设计中常用的技术之一,它能够使网页元素产生丰富的动态效果,提升用户体验。在 CSS 动画中,填充模式(fill-mode)和延迟(delay)是两个重要的属性,它们能够帮助我们更精细地控制动画的执行过程。本文将围绕 CSS 动画填充模式与延迟的综合运用,探讨如何通过代码实现各种动态效果。

填充模式(fill-mode)

填充模式是 CSS 动画的一个属性,它决定了动画在执行过程中以及动画完成后元素的状态。填充模式有四种值:none、forwards、backwards 和 both。

- none:默认值,动画完成后元素会回到初始状态。

- forwards:动画完成后元素会保持在动画的最后一个关键帧状态。

- backwards:动画开始前元素会保持在动画的第一个关键帧状态。

- both:动画开始前和完成后元素都会保持在关键帧状态。

示例代码

以下是一个简单的 CSS 动画示例,演示了不同填充模式的效果:

html

<!DOCTYPE html>


<html lang="en">


<head>


<meta charset="UTF-8">


<meta name="viewport" content="width=device-width, initial-scale=1.0">


<title>Fill Mode Example</title>


<style>


.box {


width: 100px;


height: 100px;


background-color: red;


animation: slide 2s ease forwards;


}

@keyframes slide {


0% {


transform: translateX(0);


}


100% {


transform: translateX(100px);


}


}

.box2 {


width: 100px;


height: 100px;


background-color: green;


animation: slide 2s ease backwards;


}

.box3 {


width: 100px;


height: 100px;


background-color: blue;


animation: slide 2s ease both;


}


</style>


</head>


<body>


<div class="box"></div>


<div class="box2"></div>


<div class="box3"></div>


</body>


</html>


在上面的代码中,`.box` 使用了 `forwards` 填充模式,动画完成后会保持在最后一个关键帧的状态。`.box2` 使用了 `backwards` 填充模式,动画开始前会保持在第一个关键帧的状态。`.box3` 使用了 `both` 填充模式,动画开始前和完成后都会保持在关键帧状态。

延迟(delay)

延迟是 CSS 动画的一个属性,它允许我们设置动画开始前的等待时间。延迟的值可以是时间(如 `2s`)或百分比(如 `50%`),其中百分比是基于动画总时长计算的。

示例代码

以下是一个带有延迟的 CSS 动画示例:

html

<!DOCTYPE html>


<html lang="en">


<head>


<meta charset="UTF-8">


<meta name="viewport" content="width=device-width, initial-scale=1.0">


<title>Delay Example</title>


<style>


.box {


width: 100px;


height: 100px;


background-color: red;


animation: slide 2s ease forwards 1s;


}

@keyframes slide {


0% {


transform: translateX(0);


}


100% {


transform: translateX(100px);


}


}


</style>


</head>


<body>


<div class="box"></div>


</body>


</html>


在上面的代码中,`.box` 的动画设置了 `1s` 的延迟,这意味着动画将在 1 秒后开始执行。

填充模式与延迟的综合运用

将填充模式和延迟结合起来,我们可以创造出更加复杂的动画效果。以下是一些综合运用的示例:

示例 1:交错动画

html

<!DOCTYPE html>


<html lang="en">


<head>


<meta charset="UTF-8">


<meta name="viewport" content="width=device-width, initial-scale=1.0">


<title>Interleaved Animation Example</title>


<style>


.box {


width: 100px;


height: 100px;


background-color: red;


animation: slide 2s ease forwards 1s;


}

.box2 {


width: 100px;


height: 100px;


background-color: green;


animation: scale 2s ease forwards 2s;


}

@keyframes slide {


0% {


transform: translateX(0);


}


100% {


transform: translateX(100px);


}


}

@keyframes scale {


0% {


transform: scale(1);


}


100% {


transform: scale(1.5);


}


}


</style>


</head>


<body>


<div class="box"></div>


<div class="box2"></div>


</body>


</html>


在这个示例中,`.box` 和 `.box2` 的动画是交错的,`.box` 的动画延迟了 1 秒,而 `.box2` 的动画延迟了 2 秒。

示例 2:循环动画

html

<!DOCTYPE html>


<html lang="en">


<head>


<meta charset="UTF-8">


<meta name="viewport" content="width=device-width, initial-scale=1.0">


<title>Looping Animation Example</title>


<style>


.box {


width: 100px;


height: 100px;


background-color: red;


animation: slide 2s ease forwards 1s infinite;


}

@keyframes slide {


0% {


transform: translateX(0);


}


100% {


transform: translateX(100px);


}


}


</style>


</head>


<body>


<div class="box"></div>


</body>


</html>


在这个示例中,`.box` 的动画设置了无限循环,并且延迟了 1 秒。

总结

CSS 动画的填充模式和延迟是两个强大的属性,它们可以帮助我们实现各种复杂的动态效果。通过合理运用这两个属性,我们可以创造出丰富的动画效果,提升网页的视觉效果和用户体验。本文通过示例代码展示了填充模式和延迟的基本用法,以及它们在综合运用中的效果。希望这些示例能够帮助读者更好地理解和应用 CSS 动画。