В одной из задач возникла необходимость оживить фон.
Заказчику хотел видеть анимацию, наглядно демонстрирующую электро-магнитное поле возникающее вокруг разнообразного оборудования. Вспомнив картинки из книг по электронике для начинающих, получилось следующее.
Использовать GIF крайне не хотелось из за его ограничений при работе с прозрачностью. Было решено использовать CSS.
HTML заготовка получилась очень компактной:
Для уменьшения количество параметров описывающих размер, максимально используются относительные размеры:
Добавляем движение:
А запускаем:
Рабочий пример тут: jsfiddle.net/lynxtver/w5gfu/3
Заказчику хотел видеть анимацию, наглядно демонстрирующую электро-магнитное поле возникающее вокруг разнообразного оборудования. Вспомнив картинки из книг по электронике для начинающих, получилось следующее.
Использовать GIF крайне не хотелось из за его ограничений при работе с прозрачностью. Было решено использовать CSS.
HTML заготовка получилась очень компактной:
<div class="pulsar">
<div class="ring"></div>
<div class="ring"></div>
<div class="ring"></div>
<div class="ring"></div>
</div>
Для уменьшения количество параметров описывающих размер, максимально используются относительные размеры:
.pulsar {
width: 400px;
height: 400px;
margin: 0px auto;
position: relative;
}
.pulsar .ring {
box-sizing: border-box;
position: absolute;
top: 50%;
left: 50%;
border: 10px solid red;
box-shadow: inset 0 0 10px 0 red;
border-radius: 50%;
width: 100%;
height: 100%;
margin-top: -50%;
margin-left: -50%;
-webkit-transform: scale(0);
transform: scale(0);
}
Добавляем движение:
@keyframes pulsar {
0% {
transform: scale(0);
opacity: 1;
}
75% {
opacity: 1;
}
100% {
transform: scale(1);
opacity: 0;
}
}
@-webkit-keyframes pulsar {
0% {
-webkit-transform: scale(0);
opacity: 1;
}
75% {
opacity: 1;
}
100% {
-webkit-transform: scale(1);
opacity: 0;
}
}
А запускаем:
.pulsar .ring:nth-child(1) {
-webkit-animation: pulsar 2s 0s linear infinite;
animation: pulsar 2s 0s linear infinite;
}
.pulsar .ring:nth-child(2) {
-webkit-animation: pulsar 2s .5s linear infinite;
animation: pulsar 2s .5s linear infinite;
}
.pulsar .ring:nth-child(3) {
-webkit-animation: pulsar 2s 1s linear infinite;
animation: pulsar 2s 1s linear infinite;
}
.pulsar .ring:nth-child(4) {
-webkit-animation: pulsar 2s 1.5s linear infinite;
animation: pulsar 2s 1.5s linear infinite;
}
Рабочий пример тут: jsfiddle.net/lynxtver/w5gfu/3