Код: Выделить всё
@keyframes appear {
0% {
opacity: 0;
transform: translate(-50%, -50%) scale(0);
}
50% {
opacity: 1;
transform: translate(-50%, -50%) scale(1);
}
100% {
opacity: 1;
transform: translate(-50%, -50%) scale(0);
}
}
.element {
position: relative;
width: 200px;
height: 200px;
background-color: #ccc;
}
.element::after {
position: absolute;
content: "";
width: 80%;
height: 80%;
top: 50%;
left: 50%;
transform-origin: center;
background-color: crimson;
transform: translate(-50%, -50%) scale(0);
border-radius: 50%;
animation: appear 2s ease-in-out;
transition: all 1s ease-in-out;
}
.element:hover::after {
transform: translate(-50%, -50%) scale(0.8);
}< /code>
Я пробовал , чтобы поддерживать конечный ключ, но это Предполагает, что эффект падения, я думаю. Код> Так что анимация не закончено). Он воспроизводит анимацию в течение первой половины продолжительности, а затем применяет переход между конечным ключом и состоянием наказания элемента. Почему это работает? Можно ли использовать эти неполные ключевые кадры? Это общее решение? Это решение также имеет какие-то ошибки, я думаю, но не такой большой, как первый фрагмент. ">
Код: Выделить всё
@keyframes appear {
0% {
opacity: 0;
transform: translate(-50%, -50%) scale(0);
}
25% {
opacity: 1;
transform: translate(-50%, -50%) scale(1);
}
50% {
opacity: 0;
transform: translate(-50%, -50%) scale(0);
}
}
.element {
position: relative;
width: 200px;
height: 200px;
background-color: #ccc;
}
.element::after {
position: absolute;
content: "";
width: 80%;
height: 80%;
top: 50%;
left: 50%;
transform-origin: center;
background-color: crimson;
transform: translate(-50%, -50%) scale(0);
border-radius: 50%;
animation: appear 4s ease-in-out;
transition: all 1s ease-in-out;
}
.element:hover::after {
transform: translate(-50%, -50%) scale(0.8);
}< /code>
< /code>
< /div>
< /div>
< /p>
Какой лучший (или наиболее распространенный) способ решения этой проблемы? /p>
edit < /h3>
Первый фрагмент кода приводит к резкому резкому эффекту, если элемент парят, в то время как его начальная анимация появления все еще играет. < /p >
Второй фрагмент кода улучшает это, используя 50%< /code> в качестве остановки ключа, что помогает сгладить переход. Тем не менее, я не уверен, является ли использование 50%TL; DR, как я могу сделать переходы на пари, вступить в силу только после того, как анимация завершится, вместо того, чтобы применять эффект падения, в то время как анимация все еще играет? (Без JavaScript, если это возможно)
Подробнее здесь: https://stackoverflow.com/questions/794 ... -and-hover
Мобильная версия