CSS 实现心形加载动画

冰山一角 2024-10-02 ⋅ 20 阅读

在这篇博客中,我们将学习如何使用 CSS 来创建一个迷人的心形加载动画。你将看到如何利用 CSS 动画和旋转效果来实现这个动画效果。让我们开始吧!

准备工作

在开始之前,我们需要一个基本的 HTML 结构来容纳我们的加载动画。在 HTML 文件中,我们可以添加一个 div 元素来承载我们的动画。

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

创建 heart-loader 类

在 CSS 文件中,我们将使用 heart-loader 类来定义动画的样式。

.heart-loader {
  width: 100px;
  height: 100px;
  position: relative;
  margin: 0 auto;
}

上面的代码将设置加载动画容器的宽度为 100 像素,高度为 100 像素,并将其居中显示。

添加动画效果

下一步是为加载动画添加动画效果。我们将使用 CSS 关键帧动画来实现这个效果。

.heart-loader:before,
.heart-loader:after {
  content: '';
  position: absolute;
  top: 0;
  width: 50px;
  height: 80px;
  border-radius: 50px 50px 0 0;
  background: #ff3f40;
}

.heart-loader:before {
  left: 50px;
  transform: rotate(-45deg);
  transform-origin: 0 100%;
  animation: heart-loader 1s linear infinite;
}

.heart-loader:after {
  left: 0;
  transform: rotate(45deg);
  transform-origin: 100% 100%;
  animation: heart-loader 1s linear infinite reverse;
}

@keyframes heart-loader {
  0% {
    transform: rotate(45deg);
  }
  100% {
    transform: rotate(-315deg);
  }
}

上面的代码将分别创建两个半圆形元素。这两个元素将通过 beforeafter 伪元素在容器中展示。我们使用 animation 属性将 heart-loader 动画应用到这两个元素上,并设置无限循环,持续时间为 1 秒。

完成加载动画

最后一步是为加载动画添加一些样式,使其看起来更美观。

.heart-loader:before,
.heart-loader:after {
  box-shadow: -3px -3px 5px rgba(255, 255, 255, 0.4);
}

.heart-loader:before {
  z-index: 1;
}

.heart-loader:after {
  z-index: 2;
}

.heart-loader:before {
  animation-delay: 0.1s;
}

.heart-loader:after {
  animation-delay: 0.2s;
}

上述代码会对加载动画的半圆形元素添加阴影效果,并通过 z-index 属性设置它们的叠放顺序。我们还使用 animation-delay 属性为每个半圆形元素制定不同的延迟时间,从而实现动画效果的连续性。

总结

在本文中,我们学习了如何使用 CSS 创建一个心形加载动画。我们通过使用 CSS 关键帧动画结合旋转和伪元素来实现动画效果。通过添加一些样式效果,我们提高了动画的美观度。希望本文对你有所帮助,谢谢阅读!


全部评论: 0

    我有话说: