【发布时间】:2019-04-11 22:05:21
【问题描述】:
我正在尝试围绕另一个物体(圆圈)制作一个“点”轨道,但由于z-index,点总是出现在圆圈上方,这意味着它是绕着轨道运行的。
CodePen 链接:https://codepen.io/moy/pen/ROVZXd?editors=1100
理想情况下,动画的第二半部分会发生在对象的后面,所以直到它从另一边出来时才能看到 - 这可能吗?
我想过淡出正在移动的对象,但我认为这不会产生平滑/蒙版效果?
对于如何屏蔽这个区域有点卡住,因为我看不到 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>
【问题讨论】:
-
问题存在于堆栈 sn-p 但不存在于 codepen 链接中 - codepen 是你的还是你试图复制的东西?
-
我实际上一直在玩它,并以 100% 的比例向其父级添加了一个
z-index,我认为这已经对其进行了排序。以为我不确定为什么在 50% 处应用否定的z-index不起作用而 100% 起作用,因为它确实需要设置到一半!
标签: html css css-animations