Если у вас все в порядке с минимальным значением 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/