Episode 21 of 25

Animations Part 2

Continue learning animations with CSS keyframes and ng-view transitions.

Let's explore more advanced animations including CSS keyframes and view transitions.

CSS Keyframe Animations

@keyframes fadeInDown {
    from {
        opacity: 0;
        transform: translateY(-20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeOutUp {
    from {
        opacity: 1;
        transform: translateY(0);
    }
    to {
        opacity: 0;
        transform: translateY(-20px);
    }
}

.card.ng-enter {
    animation: fadeInDown 0.5s ease;
}

.card.ng-leave {
    animation: fadeOutUp 0.3s ease;
}

View Transition Animations

Animate route changes with ng-view:

.ng-enter {
    animation: slideInRight 0.4s ease;
}

.ng-leave {
    animation: slideOutLeft 0.4s ease;
}

@keyframes slideInRight {
    from { transform: translateX(100%); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

@keyframes slideOutLeft {
    from { transform: translateX(0); opacity: 1; }
    to { transform: translateX(-100%); opacity: 0; }
}

Staggered Animations

/* Each item animates with a slight delay */
.item.ng-enter-stagger {
    transition-delay: 0.1s;
    transition-duration: 0;
}

.item.ng-enter {
    opacity: 0;
    transform: translateY(20px);
    transition: all 0.3s ease;
}

.item.ng-enter-active {
    opacity: 1;
    transform: translateY(0);
}

Animate ng-class

.highlight-add {
    transition: background 0.5s;
}
.highlight {
    background: #ffffcc;
}
.highlight-remove {
    transition: background 0.5s;
}
<div ng-class="{ highlight: isHighlighted }">
    Toggle my highlight!
</div>