Изменение `transform-origin` в CSSTransitionGroup не работает должным образом

#javascript #css #reactjs

#javascript #css #reactjs

Вопрос:

Я пытаюсь создать простой компонент. При нажатии кнопки отображается меню, которое должно выдвигаться слева. При повторном нажатии он должен скользить справа. Это выглядит следующим образом.

Я использовал следующее в качестве моего enter , enterActive , leave , и leaveActive (соответственно).

 .open {
  opacity: 0;
  transform: scaleX(0);
  transform-origin: left;
  transition: all 200ms ease-in;
}

.opened {
  opacity: 1;
  transform: scaleX(1);
}

.close {
  opacity: 1;
  transform: scaleX(1);
  transform-origin: right;
  transition: all 200ms ease-in;
}

.closed {
  opacity: 0;
  transform: scaleX(0);
}
  

Здесь есть рабочий codepen, чтобы показать проблему.

Чего я не понимаю: как мне заставить анимацию закрытия начинаться справа и перемещаться влево при закрытии? Казалось transform-origin , что это правильный CSS, но он работал не так, как предполагалось. Начальная анимация открытия была правильной, но не анимация выхода.

Комментарии:

1. Я считаю, что желаемого поведения можно достичь, установив для обоих источников преобразования значение ‘left’. Он открывается слева, а затем закрывается влево, как типичный складной левый навигатор.

2. это помогло! Я обнаружил, что использование all вызвало большую часть проблемы