Задержка дочерних анимаций в представлении

Я новичок в AngularJS, но прежде чем задать этот вопрос, я искал и искал ответ о том, как сделать это по Angular Way, но потерпел неудачу.

Что я хочу сделать:иметь дочернюю анимацию триггера представления [задержка] до тех пор, пока представление [родитель] не будет анимировано или слегка анимировано.

В настоящее время у меня все настроено с помощью ui-view, и у меня есть анимация страниц без проблем. Но если я пытаюсь задержать дочернюю анимацию или сделать ее анимацию длиннее, чем родительская анимация, она просто прыгает вместо анимации.

Из того, что я могу сказать, это происходит потому, что ng-enter и ng-left удаляются после того, как родительский объект выполнит анимацию, как и было задумано.

Я создал Plunker, чтобы показать это: http://plnkr.co/edit/5iOb1j0l8lFaMZfrKIFh?p=preview

Анимация выполняется с помощью CSS:

.ui-animate {
    $enLvDur: .8s;
    $delay: 1s;

    &.ng-enter,
    &.ng-leave {
        position:absolute;
        top: 100px; right: 0;
        bottom: 0; left: 0;

        transform: -webkit-translateX(0px);
        transform: -ms-translateX(0px);
        transform: translateX(0px);
    }

    &.ng-enter {
        z-index: 2;
        transform: -webkit-translateX(100%);
        transform: -ms-translateX(100%);
        transform: translateX(100%);

        transition: -webkit-transform $enLvDur ease-in-out 0s;
        transition:     -ms-transform $enLvDur ease-in-out 0s;
        transition:         transform $enLvDur ease-in-out 0s;

        .child-delay {
            opacity: 0;

            transition: opacity $enLvDur ease-in-out $delay;
        }
    }

    &.ng-enter-active {
        transform: -webkit-translateX(0px);
        transform: -ms-translateX(0px);
        transform: translateX(0px);

        .child-delay {
            opacity: 1;
        }
    }

    &.ng-leave {
        z-index: 1;
        transform: -webkit-translateX(0px);
        transform: -ms-translateX(0px);
        transform: translateX(0px);

        transition: -webkit-transform $enLvDur ease-in-out 0s;
        transition:     -ms-transform $enLvDur ease-in-out 0s;
        transition:         transform $enLvDur ease-in-out 0s;
    }

    &.ng-leave-active {
        transform: -webkit-translateX(100%);
        transform: -ms-translateX(100%);
        transform: translateX(100%);
    }
}

Если вы нажмете между страницами, то увидите, что желтое поле не анимируется, потому что оно имеет задержку в 1 с, а родительский имеет продолжительность анимации.8 с. (вы можете изменить это в файле style.scss)

Итак, как бы мне было сделать так, чтобы дети анимировали представления, независимо от того, была ли задержка или продолжительность, когда представление вводится и удаляется?

0 ответов

Другие вопросы по тегам