console
<div class="body">
<div class="wrapper"></div>
<div class="item item1">1</div>
<div class="item item2">2</div>
<div class="item item3">3</div>
<div class="item item4">4</div>
<div class="item item5">5</div>
<div class="item item6">6</div>
<div class="item item7">7</div>
</div>
.body {
position: relative;
margin: 200px;
background: greenyellow;
}
.wrapper {
width: 400px;
height: 200px;
border-radius: 50%;
transform: scaleY(0.5);
border: 3px solid pink;
}
.item {
position: absolute;
width: 20px;
height: 20px;
border-radius: 50%;
background: blue;
}
.item1 {
animation: animX 8s cubic-bezier(0.38, 0, 0.62, 1) -4s infinite alternate, animY 8s cubic-bezier(0.38, 0, 0.62, 1) 0s infinite alternate
}
.item2 {
animation: animX 8s cubic-bezier(0.38, 0, 0.62, 1) -2s infinite alternate, animY 8s cubic-bezier(0.38, 0, 0.62, 1) 2s infinite alternate
}
.item3 {
animation: animX 8s cubic-bezier(0.38, 0, 0.62, 1) 0s infinite alternate, animY 8s cubic-bezier(0.38, 0, 0.62, 1) 4s infinite alternate
}
.item4 {
animation: animX 8s cubic-bezier(0.38, 0, 0.62, 1) 2s infinite alternate, animY 8s cubic-bezier(0.38, 0, 0.62, 1) 6s infinite alternate
}
.item5 {
animation: animX 8s cubic-bezier(0.38, 0, 0.62, 1) 4s infinite alternate, animY 8s cubic-bezier(0.38, 0, 0.62, 1) 8s infinite alternate
}
.item6 {
animation: animX 8s cubic-bezier(0.38, 0, 0.62, 1) 6s infinite alternate, animY 8s cubic-bezier(0.38, 0, 0.62, 1) 10s infinite alternate
}
.item7 {
animation: animX 8s cubic-bezier(0.38, 0, 0.62, 1) 8s infinite alternate, animY 8s cubic-bezier(0.38, 0, 0.62, 1) 12s infinite alternate
}
@keyframes animX {
0% {
left: 0px;
}
100% {
left: 400px;
}
}
@keyframes animY {
0% {
top: 50px;
}
100% {
top: 150px;
}
}