用css实现一个类似于elementUI中Loading组件有缺口的加载圆环

直接上代码:

HTML部分

html 复制代码
<div id="app">
  <div class="loaderContainer">
    <div class="loaderContainer__icon"></div>
    <p class="loaderContainer__text">加载中...</p>
  </div>
</div>

CSS部分

css 复制代码
html,
body,
#app {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

.loaderContainer {
  display: flex;
  flex-direction: column;
  align-items: center;

  .loaderContainer__icon {
    width: 42px;
    height: 42px;
    color: #0057ff;
    border-radius: 50%;
    border: 3px solid #0057ff;
    border-top-color: #ffffff;
    animation: spin 1s infinite linear;
    background-color: transparent;
  }

  .loaderContainer__text {
    margin-top: 10px;
    font-size: 14px;
    color: #0057ff;
  }
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

核心思想

1,使用一个div,设置宽高相等、再设置border-radius为50%,形成一个圆;

2,通过border给圆的边框设置宽度和颜色,并通过border-top-color设置和当前背景色一致,实现有缺口的视觉效果。

3,将圆的background-color设置为transparent透明,形成一个空心的圆环。

4,定义spin动画,使圆环旋转,实现加载的视觉效果

相关推荐
爱学习的茄子4 分钟前
【前端实战】三分钟掌握原生JS电影搜索应用,从此告别框架依赖
前端·javascript·深度学习
林太白6 分钟前
Next.js超简洁完整篇
前端·后端·react.js
前端付豪6 分钟前
汇丰登录风控体系拆解:一次 FaceID 被模拟攻击的调查纪实
前端·后端·架构
天生我材必有用_吴用14 分钟前
Three.js开发必备:模型对象和材质详解
前端
万变不离其宗_814 分钟前
echarts使用笔记
前端·笔记·echarts
时光足迹17 分钟前
电子书阅读器之章节拆分
前端·javascript·react.js
无名之逆17 分钟前
大三自学笔记:探索Hyperlane框架的心路历程
java·开发语言·前端·spring boot·后端·rust·编程
郭顺发21 分钟前
个人网站大更新,还是有个总站比较好
前端
古夕23 分钟前
Webpack 之 打包后的 bundle 文件内容解析
前端·面试·webpack
朴shu29 分钟前
Avatar-Clipper 轻量级图片裁剪工具
前端·设计模式·开源