Освоение CSS-анимации: как сохранить анимацию в конце

CSS-анимация — мощный инструмент для улучшения пользовательского опыта на веб-сайтах. Они позволяют вам воплотить ваши проекты в жизнь и привлечь посетителей визуально привлекательными эффектами. Одной из распространенных проблем в CSS-анимации является обеспечение того, чтобы анимация после завершения оставалась в конечном состоянии, а не возвращалась в исходное состояние. В этой статье мы рассмотрим различные методы достижения желаемого поведения, а также приведем примеры кода. Давайте погрузимся!

Метод 1: использование свойстваanimation-fill-mode
Свойство animation-fill-modeуправляет тем, что происходит до и после выполнения анимации. Если установить значение forward, анимация сохранит свое конечное состояние. Вот пример:

@keyframes slideIn {
  from {
    transform: translateX(-100%);
  }
  to {
    transform: translateX(0);
  }
}
.element {
  animation-name: slideIn;
  animation-duration: 1s;
  animation-fill-mode: forwards;
}

Метод 2: использование события окончания анимации.
Вы можете использовать JavaScript, чтобы добавить класс к элементу после завершения анимации, что сохранит его в конечном состоянии. Вот пример:

@keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
.element {
  animation-name: fadeOut;
  animation-duration: 2s;
}
.element.end {
  opacity: 0;
}
const element = document.querySelector('.element');
element.addEventListener('animationend', () => {
  element.classList.add('end');
});

Метод 3. Использование свойства перехода
Если вы используете переходы CSS вместо анимации, вы можете добиться желаемого эффекта, используя свойство transition. Вот пример:

.element {
  opacity: 0;
  transition: opacity 1s;
}
.element.active {
  opacity: 1;
}
const element = document.querySelector('.element');
element.classList.add('active');

В этой статье мы рассмотрели различные методы, позволяющие гарантировать, что CSS-анимация останется в конечном состоянии. Используя свойство animation-fill-mode, событие animationendили свойство transition, вы можете управлять окончательным внешним видом анимированных элементов. Поэкспериментируйте с этими приемами, чтобы создать цельную, визуально привлекательную анимацию, которая оставит неизгладимое впечатление на посетителей вашего сайта.

Реализуя эти методы, вы сможете вывести CSS-анимацию на новый уровень и обеспечить удобство взаимодействия с пользователем. Не забудьте выбрать метод, который лучше всего соответствует вашим конкретным требованиям к анимации. Приятной анимации!