Я хочу анимировать последовательность div, появляющихся на странице, один за другим.У меня настроена задержка анимации для всех из них, и анимация применяется для каждого из них в правильное время.
Но!Я хочу анимировать от display: block
до display: none
, что, я знаю, невозможно.Я пробовал visibility: hidden
+ opacity: 0
+ height
и анимировал их, но это не позиционирует элементы так, как я хочу, потому что они идут прямо в конечную позицию, где в конечном итоге оказываются настраница, когда все в порядке, вместо того, чтобы отталкивать друг друга в сторону, как я хотел бы с помощью анимации дисплея.
Как я могу заставить их каждого начинать в одном месте и отталкивать друг друга с пути, покаконец анимации без JavaScript или позиционирования вручную?
Мой текущий код SCSS (есть 14 text
делений для анимации):
.text-container {
display: flex;
flex-direction: column;
justify-content: flex-end;
padding: 5px;
width: 100%;
height: 170px;
box-sizing: border-box;
overflow: hidden;
.text {
visibility: hidden;
opacity: 0;
max-height: 0;
align-self: flex-start;
margin: 3px 3px 0;
padding: 5px;
max-width: 80%;
box-sizing: border-box;
animation: 7s text-bubble infinite;
}
// ------------ animation delay
@for $i from 1 through 14 {
.text {
&:nth-child(#{$i}) {
animation-delay: $i * 1s;
}
}
}
// ------------
}
@keyframes text-bubble {
0% {
visibility: hidden;
opacity: 0;
max-height: 0;
transform: scale(1);
}
50% {
visibility: visible;
opacity: 1;
max-height: 170px;
transform: scale(1.15);
}
100% {
visibility: visible;
opacity: 1;
max-height: 170px;
transform: scale(1);
}
}