In this tutorial, we will explore how to use triggers and transitions within Angular animations. By the end of this tutorial, you should be able to incorporate this into your own projects effectively.
Angular animations are built on the web standard animations API and run natively on browsers without AngularJS.
Triggers are used to activate animations. In Angular, you can define a trigger in your component's metadata and then call it in the template.
animations: [
trigger('openClose', [
// ...
]),
],
Transitions are used to define the changes between two states. In Angular, you can define a transition within a trigger.
trigger('openClose', [
// transition states go here
]),
import { trigger, state, style, animate, transition } from '@angular/animations';
@Component({
selector: 'my-app',
templateUrl: 'app.component.html',
animations: [
trigger('openClose', [
state('open', style({
height: '200px',
opacity: 1,
backgroundColor: 'yellow'
})),
state('closed', style({
height: '100px',
opacity: 0.5,
backgroundColor: 'green'
})),
transition('open => closed', [
animate('1s')
]),
transition('closed => open', [
animate('0.5s')
]),
]),
],
})
In this code, we are defining a trigger called openClose
. This trigger has two states: open
and closed
. When the openClose
trigger changes from open
to closed
, it will animate over 1 second. When it changes from closed
to open
, it will animate over 0.5 seconds.
<div [@openClose]="isOpen ? 'open' : 'closed'" (@openClose.start)="animationStarted($event)" (@openClose.done)="animationDone($event)">
<p>The box is now {{ isOpen ? 'Open' : 'Closed' }}!</p>
</div>
In this example, we're using the openClose
trigger in the template. The div's openClose
property is bound to the isOpen
variable in the component. When isOpen
is true, the div will be in the open
state, and when it's false, it will be in the closed
state. We're also binding the start
and done
events to methods in the component.
In this tutorial, we have learned about Angular animations, how to use triggers and transitions, and seen some practical examples.
To further your learning, you should practice creating your own animations and using different properties in the style
function.
Here are some resources that might help:
- Angular Animations Guide
- MDN Web Docs on CSS Animations
Create a simple animation that changes the color of a div from red to blue and back.
Create a trigger that changes the size of a div when a button is clicked.
Create a complex animation that uses multiple properties.
style
function to change the backgroundColor
property.style
function to create a complex animation.