@jorge  
Для создания анимации с использованием JavaScript и CSS, следует использовать следующий подход:
- Создание элемента, который будет анимироваться, и добавление стилей CSS для определения его начального состояния и эффектов анимации в файле CSS:
 
1
2
3
4
5
6
  | 
#myElement {
  width: 100px;
  height: 100px;
  background-color: red;
  transition: width 1s, height 1s, background-color 1s; /* определяем свойства и время анимации */
}
 | 
 
- Использование JavaScript для добавления/удаления классов элементу, чтобы запустить/завершить анимацию:
 
1
2
  | 
let element = document.getElementById("myElement");
element.classList.add("animate"); // Добавляем класс, чтобы начать анимацию
 | 
 
- Определение CSS-класса анимации, который будет применяться к элементу во время анимации:
 
1
2
3
4
5
  | 
.animate {
  width: 200px;
  height: 200px;
  background-color: blue;
}
 | 
 
- Дополнительно можно добавить обработчик события "transitionend", который сработает после завершения анимации, чтобы удалить класс анимации:
 
1
2
3
  | 
element.addEventListener("transitionend", function() {
  element.classList.remove("animate"); // Удаляем класс после завершения анимации
});
 | 
 
После выполнения данных шагов, при активации анимации (например, по событию клика) элемент будет изменять свои свойства (ширина, высота, цвет фона) плавно в течение указанного времени (1 секунда в данном примере).