仅使用HTML和SCSS(或CSS)复制SVG笔划破折号数组

时间:2019-04-19 10:54:12

标签: css svg sass frontend

我正在尝试创建与本示例类似的经典圆形装载机 https://dribbble.com/shots/1918018-Circle-Loading-Animation

因此,我知道可以将SVG与stroke-dasharray一起使用,并确保这将是简单的方法。 顺便说一句,我在问是否还有另一种方法可以仅使用SCSS(或CSS)来做到这一点。

我的目标是复制这种加载程序,而不在HTML文件中添加任何SVG。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您认为最小stroke-dashoffset大约是圆周长的25%,则可以执行以下操作。

基本上,您有四个方形子元素。每个框都有一个圆形边框,覆盖正方形的一侧(即圆周的25%)。这些子元素全部重叠。然后,您以动画开始时间稍有不同的方式旋转每个孩子。

.lds-ring {
  display: inline-block;
  position: relative;
  width: 64px;
  height: 64px;
}
.lds-ring div {
  box-sizing: border-box;
  display: block;
  position: absolute;
  width: 51px;
  height: 51px;
  margin: 6px;
  border: 6px solid #fff;
  border-radius: 50%;
  animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
  border-color: #fff transparent transparent transparent;
}
.lds-ring div:nth-child(1) {
  animation-delay: -0.45s;
}
.lds-ring div:nth-child(2) {
  animation-delay: -0.3s;
}
.lds-ring div:nth-child(3) {
  animation-delay: -0.15s;
}
@keyframes lds-ring {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}


body {
  background-color: black;
}
<div class="lds-ring">
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</div>

来源:https://loading.io/css/