我试图使用CSS动画来创建一个光源效果,在物体上投下阴影并在其周围做圆形运动。我已经创建了以下片段,展示了到目前为止的进展。
现在看起来有点接近,但是因为我只有四个关键帧,所以它像是光源沿着一个正方形路径移动。我想让它看起来像是沿着一个圆形路径移动。
我能想到的唯一解决方案是添加更多的关键帧并创建一个(为简单起见)十二边形路径,但是否有更简单的解决方案?是否有一种类型的时间函数可以用于平滑路径?或者我可以使用某种Sass函数来自动计算中间关键帧吗?
需要注意的是,一旦我用box-shadow使其正常工作,我还想将相同的方法应用于text-shadow。
.container {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100vh;
}
.circle {
width: 200px;
height: 200px;
border-radius: 100%;
background-color: teal;
box-shadow: 50px 50px 5px darkgrey;
animation: orbit-shadow 5s linear infinite;
}
@keyframes orbit-shadow {
0% {
box-shadow: 50px 50px 5px darkgrey;
}
25% {
box-shadow: -50px 50px 5px darkgrey;
}
50% {
box-shadow: -50px -50px 5px darkgrey;
}
75% {
box-shadow: 50px -50px 5px darkgrey;
}
1000% {
box-shadow: 50px 50px 5px darkgrey;
}
}
<div class="container">
<div class="circle"></div>
</div>