Hello,
We want to make animation for ion-content and prevent the ion-header to be animated
let do it fast :D
Create a Directive Module
ionic generate module directive
ionic generate directive page-animation --module directive
This is PageAnimationDirective
:
import { Directive, ElementRef } from '@angular/core';
import { createAnimation } from '@ionic/core';
import { AnimationController } from '@ionic/angular';
@Directive({
selector: '[appPageAnimation]'
})
export class PageAnimationDirective {
constructor(private animationCtrl: AnimationController, private el: ElementRef) {
this.dropIn();
}
private dropIn() {
const animation = createAnimation()
.addElement(this.el.nativeElement)
.duration(500)
.iterations(1)
.fromTo('transform', 'translateY(-10%)', 'translateY(0%)');
animation.play();
}
}
Export PageAnimationDirective from DirectiveModule:
@NgModule({
declarations: [PageAnimationDirective],
imports: [
CommonModule
],
exports: [PageAnimationDirective]
})
export class DirectiveModule { }
Import DirectiveModule to Component.Module.ts of each component you want to be animated like this:
@NgModule({
imports: [FormsModule, DirectiveModule],
declarations: [FolderPage]
})
From you component.html add appPageAnimation directive to ion-content:
<ion-content [fullscreen]="true" appPageAnimation>
To Prevent ion-header, tabs, etc.. to be animated on page transition, make animate flag to false from app.module:
@NgModule({
declarations: [AppComponent],
entryComponents: [],
imports: [
...
IonicModule.forRoot({ animated: false }),
...
}
Enjoy It :D
Top comments (0)