Задать вопрос

Как вернуть css анимацию с начальное состояние?

Есть такая анимация (sass)
@keyframes boobon-levitation
  0%
    transform: translateY(0)
  50%
    transform: translateY(-20px)
  100%
    transform: translateY(0)
.body
      animation-name: boobon-levitation
      animation-iteration-count: infinite
      animation-duration: 8s
      animation-timing-function: cubic-bezier(0.68, 0.43, 0.16, 1.32)
      animation-play-state: paused
      .element:hover &
        animation-play-state: running
        animation-iteration-count: infinite

И примерно такая разметка
<div class='element'>
  <div class='body'></div>
</div>

Таким образом элемент с классом body леветирует при наведении на родителя.
Вопрос: Как можно ПЛАВНО вернуть div.body в первоначально положение когда родитель теряет hover?
  • Вопрос задан
  • 1640 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Профессиональная вёрстка на HTML и CSS
    3 месяца
    Далее
  • Skillbox
    Веб-вёрстка 3.0
    3 месяца
    Далее
  • OTUS
    HTML/CSS
    3 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 1
lazalu68
@lazalu68
Salmon
Как раз недавно было похожее. Можно обращаться к элементу, смотреть его положение и доанимировать до конца, или вообще анимировать с помощью JS, но мне кажется проще использовать анимацию как обычно, а останавливать её с помощью явного указания animation-iteration-count, как здесь - первый клик по элементу стартует анимацию, а повторный сообщает элементу, что анимацию следует остановить на текущей итерации. Потренироваться на кошках можно здесь.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
FoodSoul Калининград
от 180 000 до 250 000 ₽
Data Directs Тель-Авив
от 350 000 ₽