Я пытаюсь объединить несколько частей анимации вместе, нажав кнопку. Вот пример:Объединить несколько анимаций
.element {
background-color: black;
display: block;
width: 160px;
height: 160px;
border-radius: 80%;
}
.one {
animation: one 1.5s ease 1 forwards;
}
.two {
animation: two 1s forwards;
}
@keyframes one {
from {
transform: scale(0.25);
opacity: 0;
}
25% {
opacity: 0.5;
}
to {
transform: scale(1);
opacity: 0.5;
}
}
@keyframes two {
from {
opacity: 0.5;
}
to {
opacity: 0;
}
}
Я пытаюсь объединить эти две анимации: один и два. Мой способ сделать это - использовать JS: classList.add('.two')
, когда я нажал кнопку. Но проблема заключалась в следующем: на данный момент я добавил класс, элемент изменился на его непрозрачность по умолчанию, которая была 1.
Чтобы решить эту проблему, я добавил новый класс, содержащий стили, которые на самом деле были клонами окончательных стилей первой анимации , И после того, как вторая часть была закончена, мне пришлось удалить список классов для подготовки к первой анимации, которую нужно воспроизвести.
Итак, мой вопрос в том, есть ли лучший способ сделать это?
Вот CodePen Demo
Я просто понял, проблему с этим: Если я начну вторую анимацию перед первыми один был закончен, будет разрыв (круг будет просто превращается в большой один все из неожиданность).
Демо-версию можно найти по вышеуказанной ссылке, спасибо!
Обе анимации имеют ровно обратную установку друг друга для 'opacity' так, как вы можете объединить два? Вопрос непонятен. Можете ли вы показать нам демонстрацию того, что вы пытаетесь сделать? – Harry
Привет, Гарри, я не уверен, что вы можете открыть ссылку? Большое спасибо! http://codepen.io/q105037696/pen/MyaXpL – Heyi
Нужно ли вам делать это с анимацией? Вы можете добиться чего-то почти такого же, как и при переходе, например [здесь] (http://codepen.io/hari_shanx/pen/vGNaOd) с гораздо меньшим количеством кода. – Harry