寻求有关尝试实现某个动画的帮助。我正在尝试创建一个类似于此处看到的无限扩展环的序列。(示例环正在收缩,我正在寻找另一个方向)。
到目前为止,我已经有了一个很好的开始,我只是不确定如何让它“顺利”循环,或者是否甚至可以仅使用 CSS。
非常感谢任何提示或想法。谢谢!
寻求有关尝试实现某个动画的帮助。我正在尝试创建一个类似于此处看到的无限扩展环的序列。(示例环正在收缩,我正在寻找另一个方向)。
到目前为止,我已经有了一个很好的开始,我只是不确定如何让它“顺利”循环,或者是否甚至可以仅使用 CSS。
非常感谢任何提示或想法。谢谢!
首先,让我们创建 6 个环
<div id="r1" class="ring"></div>
<div id="r2" class="ring"></div>
<div id="r3" class="ring"></div>
<div id="r4" class="ring"></div>
<div id="r5" class="ring"></div>
<div id="r6" class="ring"></div>
和CSS:
.ring {
width: 300px;
height: 300px;
border-radius: 50%;
position: absolute;
background-color: transparent;
border: 15px gray solid;
-webkit-animation-name: ani;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: ease;
-webkit-animation-duration: 6s;
-webkit-animation-direction: reverse;
}
@-webkit-keyframes ani {
0% {-webkit-transform: scale(1); opacity: 0;}
10% {-webkit-transform: scale(1); opacity: 1;}
99.9% {-webkit-transform: scale(0.1); opacity: 1}
100% {-webkit-transform: scale(0.1); opacity: 0}
}
#r2 { -webkit-animation-delay: 1s;}
#r3 { -webkit-animation-delay: 2s;}
#r4 { -webkit-animation-delay: 3s;}
#r5 { -webkit-animation-delay: 4s;}
#r6 { -webkit-animation-delay: 5s;}
这个想法是让环出现在最小比例,从最小比例到最大比例,然后让它消失。
要为 n 个环制作该动画,您无需创建不同的动画,只需在初始延迟后重复使用相同的动画即可。
我误读了您的问题,没有看到您想要视频的对面。我后来修复了它,将动画设置为反向;对不起 !
更好的解决方案:
CSS
.ring {
width: 300px;
height: 300px;
border-radius: 50%;
position: absolute;
background-color: transparent;
border: 15px gray solid;
-webkit-animation-name: ani;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: linear;
-webkit-animation-duration: 6s;
-webkit-animation-direction: normal;
}
@-webkit-keyframes ani {
0% {-webkit-transform: scale(0.01); opacity: 0}
1% {-webkit-transform: scale(0.01); opacity: 1}
95% {-webkit-transform: scale(1); opacity: 1;}
100% {-webkit-transform: scale(1); opacity: 0;}
}
#r2 { -webkit-animation-delay: -1s;}
#r3 { -webkit-animation-delay: -2s;}
#r4 { -webkit-animation-delay: -3s;}
#r5 { -webkit-animation-delay: -4s;}
#r6 { -webkit-animation-delay: -5s;}
我已经更改了关键帧,现在它可以正常运行了。更重要的是,将延迟设置为负值,您可以将环分开,但动画会立即开始。
除了缩放之外,您还必须动态添加较小的环并在一段时间后将 css 动画附加到它们。较大的环应相应地移除。您将不得不为此使用 jquery。较小的戒指应该正确识别。
假设在 t=0 时,您有 7 个环 id'd r1-r7(向外)。当第七个环缩小到视线之外时,在里面添加另一个环(id 为 r7)并为其添加动画。无限重复此操作。