Как создать пульсирующее свечение кольцо анимации в CSS?
мне нравится, как этот сайт заставил их кольца светиться и пульсировать и хотел бы знать, как они это сделали.
Я могу сделать что-то подобное, но я не очень хорошо.
Итак, это все, что я смог выяснить, но это, похоже, не работает.
CSS:
glowycircleouter.blue .glow4 {
box-shadow: 0 0 25px #287ec6;
}
.glowycircleouter .glow4 {
-webkit-animation: glowyglow 3s 2250ms infinite;
-moz-animation: glowyglow 3s 2250ms infinite;
-ms-animation: glowyglow 3s 2250ms infinite;
-o-animation: glowyglow 3s 2250ms infinite;
animation: glowyglow 3s 2250ms infinite;
animation-name: glowyglow;
animation-duration: 3s;
animation-timing-function: initial;
animation-delay: 2250ms;
animation-iteration-count: infinite;
animation-direction: initial;
animation-fill-mode: initial;
animation-play-state: initial;
}
.glowycircleouter .glow4 {
opacity: 0;
display: block;
position: absolute;
left: 50%;
top: 50%;
width: 200%;
height: 200%;
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
-o-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
border-radius: 50%;
}
HTML-код:
<span class="glow4"></span>
1 ответов
потоки, связанные в комментариях, полезны, но я не думаю, что это точный дубликат, потому что этот немного сложнее из-за необходимости нескольких колец.
мы можем создать этот эффект анимации transform: scale()
и opacity
элементов. Здесь нам нужно больше, чем 1 элемент, потому что на связанном веб-сайте мы можем видеть по крайней мере 3 кольца в любой момент времени (один, который исчезает, один, который находится на пике, один, который исчезает). Добавив ту же анимацию в два псевдо-элемента, внутренний элемент (span
) и, задерживая анимацию на двух из них, мы можем достичь требуемого эффекта анимации.
div {
position: relative;
height: 100px;
width: 100px;
border-radius: 50%;
margin: 50px;
border: 2px solid white;
}
div:before,
div:after, span {
position: absolute;
content: '';
height: 100%;
width: 100%;
top: 0%;
left: 0%;
border-radius: 50%;
box-shadow: 0 0 15px #287ec6;
animation: glow-grow 2s ease-out infinite;
}
div:after {
animation-delay: .66s;
}
span{
animation-delay: 1.33s;
}
@keyframes glow-grow {
0% {
opacity: 0;
transform: scale(1);
}
80% {
opacity: 1;
}
100% {
transform: scale(2);
opacity: 0;
}
}
body {
background: black;
}
<div>
<span></span>
</div>