css 语言 CSS 制作带动画的加载动画集示例

CSS阿木 发布于 2025-06-18 2 次阅读


CSS 制作带动画的加载动画集示例

随着互联网的快速发展,用户体验越来越受到重视。在网站或应用程序的加载过程中,一个引人注目的加载动画可以有效地提升用户体验,减少等待时的焦虑感。本文将围绕CSS动画技术,为您展示如何制作一系列带动画的加载动画集,并探讨相关的代码实现和优化技巧。

一、CSS动画基础

CSS动画是通过CSS3的`@keyframes`规则实现的,它允许我们定义动画的起始状态、结束状态以及动画过程中的关键帧。通过调整动画的持续时间、延迟、迭代次数等属性,可以实现丰富的动画效果。

1.1 @keyframes 规则

`@keyframes` 规则用于定义动画的关键帧,它包含一系列的百分比或时间点,以及对应的样式属性值。以下是一个简单的示例:

css

@keyframes rotate {


0% {


transform: rotate(0deg);


}


100% {


transform: rotate(360deg);


}


}


1.2 动画属性

CSS动画的属性包括:

- `animation-name`:指定要应用的动画名称。

- `animation-duration`:动画完成一个周期所需的时间。

- `animation-timing-function`:动画的速度曲线。

- `animation-delay`:动画开始前的延迟时间。

- `animation-iteration-count`:动画迭代的次数。

- `animation-direction`:动画的播放方向。

- `animation-fill-mode`:动画执行前后如何应用样式。

二、加载动画集示例

以下是一些常见的加载动画集,我们将使用CSS动画技术实现它们。

2.1 圆形旋转动画

html

<div class="loader"></div>


<style>


.loader {


width: 50px;


height: 50px;


border-radius: 50%;


border: 5px solid f3f3f3;


border-top: 5px solid 3498db;


animation: spin 2s linear infinite;


}

@keyframes spin {


0% { transform: rotate(0deg); }


100% { transform: rotate(360deg); }


}


</style>


2.2 双环旋转动画

html

<div class="loader"></div>


<style>


.loader {


width: 100px;


height: 100px;


position: relative;


margin: 50px auto;


}

.loader div {


border: 5px solid f3f3f3;


border-radius: 50%;


border-top: 5px solid 3498db;


width: 100%;


height: 100%;


animation: spin 2s linear infinite;


position: absolute;


top: 0;


left: 0;


}

.loader div:nth-child(2) {


animation-delay: -1s;


}

@keyframes spin {


0% { transform: rotate(0deg); }


100% { transform: rotate(360deg); }


}


</style>


2.3 线条旋转动画

html

<div class="loader"></div>


<style>


.loader {


width: 100px;


height: 100px;


position: relative;


margin: 50px auto;


}

.loader div {


width: 4px;


height: 100%;


background-color: 3498db;


position: absolute;


top: 0;


left: 50%;


margin-left: -2px;


animation: spin 2s linear infinite;


}

.loader div:nth-child(1) {


transform-origin: 0 100%;


animation-delay: -0.5s;


}

.loader div:nth-child(2) {


transform-origin: 0 0;


animation-delay: -1s;


}

@keyframes spin {


0% { transform: rotate(0deg); }


100% { transform: rotate(360deg); }


}


</style>


2.4 雪花旋转动画

html

<div class="loader"></div>


<style>


.loader {


position: relative;


width: 100px;


height: 100px;


margin: 50px auto;


}

.loader div {


width: 10px;


height: 10px;


background-color: 3498db;


border-radius: 50%;


position: absolute;


top: 50%;


left: 50%;


margin-top: -5px;


margin-left: -5px;


animation: spin 2s linear infinite;


}

.loader div:nth-child(1) {


animation-delay: -0.5s;


}

.loader div:nth-child(2) {


animation-delay: -1s;


}

@keyframes spin {


0% { transform: rotate(0deg); }


100% { transform: rotate(360deg); }


}


</style>


三、优化与性能

在实现加载动画时,我们需要注意以下优化和性能问题:

- 避免过度动画:过多的动画会消耗大量资源,影响页面性能。

- 使用硬件加速:通过CSS的`transform`和`opacity`属性,可以利用硬件加速,提高动画性能。

- 使用CSS变量:通过CSS变量,可以方便地调整动画参数,如颜色、大小等。

- 使用SVG动画:对于复杂的动画效果,可以考虑使用SVG动画,它具有更好的性能和兼容性。

四、总结

本文通过CSS动画技术,为您展示了如何制作一系列带动画的加载动画集。通过学习和实践这些动画,您可以提升自己的前端技能,为网站或应用程序提供更丰富的用户体验。在实现动画时,注意优化和性能问题,以确保动画效果的不影响页面性能。