Анимации не включаются ng-show/hide

редактировать

Добавлены некоторые классы, но я все еще что-то упускаю

$duration = .3s
.fade
  transition $duration linear all
  &.ng-enter
    opacity 0
    transition-delay $duration
    &-active
      opacity 1
  &-hide
    opacity 1
    &.ng-hide
      opacity 0
      transition-delay $duration

  &.ng-leave, &.ng-hide-remove
    opacity 1
    &-active
      opacity 0

Это работает сейчас, но не правильно


Допустим, у меня есть эта простая анимация

animation.stylus

$duration = .3s
.fade
  &.ng-enter
    transition $duration linear all
    opacity 0
    transition-delay $duration
    &-active
      opacity 1

  &.ng-leave
    transition $duration linear all
    opacity 1
    &-active
      opacity 0

animation.css

.fade.ng-enter {
  -webkit-transition: 0.3s linear all;
  transition: 0.3s linear all;
  opacity: 0;
  -webkit-transition-delay: 0.3s;
          transition-delay: 0.3s;
}
.fade.ng-enter-active {
  opacity: 1;
}
.fade.ng-leave {
  -webkit-transition: 0.3s linear all;
  transition: 0.3s linear all;
  opacity: 1;
}
.fade.ng-leave-active {
  opacity: 0;
}

Что мне не хватает? Потому что это работает в ng-view, но не в ng-show/hide.

1 ответ

Решение

Для работы ng-show (и ng-hide) нужны дополнительные явные правила css (или js), вот они:

.fade
  &.ng-hide-add
    opacity 1
    &-active
      opacity 0
      display none
  &.ng-hide-remove
    opacity 0
    &-active
      opacity 1
Другие вопросы по тегам