Я пытаюсь создать 'точечную' орбиту вокруг другого объекта (круга), но из-за z-index
точка всегда появляется над кругом, вокруг которого она предназначена.
Ссылка CodePen: https://codepen.io/moy/pen/ROVZXd?editors=1100
В идеале 2-я половина анимации должна происходить за объектом, поэтому она не видна, пока не выйдет с другой стороны - это возможно?
Я думал о затухании движущегося объекта, но не думаю, что это дало бы эффект сглаживания / маскировки?
Немного застрял в том, как бы я замаскировал эту областьпоскольку я не могу понять, каким образом CSS узнает, что он должен быть скрыт.Я подумал, что, возможно, я мог бы изменить z-index
50%, хотя анимация и сбросить его на 0% / 100%, но это, похоже, ничего не делает.
Есть идеи?Заранее спасибо!
.earth {
background: white;
border: 1px solid black;
border-radius: 50%;
display: block;
height: 100px;
margin: 30px auto;
position: relative;
width: 100px;
z-index: 20;
}
.orbit {
border: 2px #eee transparent;
border-radius: 50%;
height: 140px;
margin: auto;
position: absolute;
top: -20px;
left: -20px;
transform: rotateZ(60deg) rotateY(60deg);
transform-style: preserve-3d;
width: 140px;
z-index: 10;
}
.orbit .moon {
animation: move ease-in-out infinite;
animation-duration: 2s;
background: black;
border-radius: 50%;
height: 15px;
margin: auto;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
width: 15px;
z-index: 10;
}
@keyframes move {
0% {
transform: rotateZ(-90deg) translateX(70px) rotateZ(90deg) rotateY(-70deg); z-index: 20;
}
50% {
z-index: -20;
}
100% {
transform: rotateZ(270deg) translateX(70px) rotateZ(-270deg) rotateY(-70deg); z-index: 20;
}
}
<div class="earth">
<div class="orbit">
<div class="moon"></div>
</div>
</div>