查看原文
其他

现代CSS:纯 CSS 实现酷炫的 Loading 漩涡动画

小懒 FED实验室 2024-02-12
关注下方公众号,获取更多现代CSS系列文章

1.快速创建页面框架

使用 html:5div.loader 快速创建页面框架。

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

2.增加基础样式

首先通过 position:fixed.loader 容器相对于 body 定位,然后通过 transform: translate() 实现水平、垂直居中,最后通过 border-top 对顶部边框进行设置。

body {
  background-color#121212;
  height100vh;
}

.loader {
  position: relative;
  top50%;
  left50%;
  width5em;
  height5em;
  transformtranslate(-50%, -50%);
  border-top5px solid #ff2281;
  border-radius50%;
}

效果如下:

3.绘制其余两条曲线

使用::before 和::after 伪元素绘制这些 2 条曲线,::before 元素的宽度和高度为父元素的 80%,::after 元素的宽度和高度为父元素的 50%,同样只对顶部边框进行样式设计。

.loader {
  &::before,
  &::after {
    position: absolute;
    top50%;
    left50%;
    transformtranslate(-50%, -50%);
    content"";
    border-radius: inherit;
  }

  &::before {
    width80%;
    height80%;
    border-top4px solid #75d5fd;
  }

  &::after {
    width50%;
    height50%;
    border-top3px solid #7fff00;
  }
}

效果如下:

4.增加动画

给 3 条曲线增加 rotate 动画,从 0% - 100% 旋转 360deg,同时给 ::before::after 伪元素增加了动画延时,以实现螺旋效果。

.loader {
  animation: rotate 1s ease-in-out infinite;

  &::before,
  &::after {
    animation: rotate 2s ease-in-out infinite;
  }

  &::before {
    animation-delay200ms;
  }

  &::after {
    animation-delay500ms;
  }
}

@keyframes rotate {
  100% {
    transformtranslate(-50%, -50%rotate(360deg);
  }
}

5.效果预览

大家都在看

继续滑动看下一个

现代CSS:纯 CSS 实现酷炫的 Loading 漩涡动画

小懒 FED实验室
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存