Angular-এ অ্যানিমেশন তৈরি করা খুবই সহজ এবং এর জন্য Angular @angular/animations প্যাকেজটি ব্যবহার করতে হয়। Angular-এ অ্যানিমেশন সাধারণত DOM ইলিমেন্টগুলোর ভিজ্যুয়াল চেঞ্জ, যেমন অবস্থান, আকার, রঙ ইত্যাদি, সজ্জিত করতে ব্যবহৃত হয়। Angular অ্যাপ্লিকেশনের মধ্যে সুন্দর এবং ইন্টারেকটিভ অ্যানিমেশন তৈরির জন্য এটি খুবই উপযোগী।
প্রথমেই Angular অ্যাপ্লিকেশনটি @angular/animations প্যাকেজটি ইনস্টল করে নিন। যদি এটি ইনস্টল না করা থাকে, তাহলে নিচের কমান্ডটি ব্যবহার করুন:
npm install @angular/animations
এটি ইনস্টল করার পর, AppModule
-এ এই প্যাকেজটি ইম্পোর্ট করতে হবে।
Angular-এ অ্যানিমেশন কনফিগার করতে হলে প্রথমে trigger এবং state ডেকোরেটর ব্যবহার করতে হয়, যা কিভাবে অ্যানিমেশনটি ট্রিগার হবে এবং কী ধরনের পরিবর্তন হবে তা নির্ধারণ করে।
trigger()
: অ্যানিমেশন ট্রিগার করতে ব্যবহৃত হয়।state()
: একটি অ্যানিমেশন স্টেট নির্ধারণ করে।transition()
: স্টেট পরিবর্তনের মধ্যে অ্যানিমেশন ট্রানজিশন কিভাবে হবে তা নির্ধারণ করে।animate()
: অ্যানিমেশন চলাকালীন সময়ে কিভাবে উপাদানটি পরিবর্তন হবে তা নির্ধারণ করে।BrowserAnimationsModule
ইম্পোর্ট করতে হবে:import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; // Import BrowserAnimationsModule
import { AppComponent } from './app.component';
@NgModule({
declarations: [AppComponent],
imports: [
BrowserModule,
BrowserAnimationsModule // Add it to the imports
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule {}
import { Component } from '@angular/core';
import { trigger, state, style, transition, animate } from '@angular/animations';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
animations: [
trigger('fade', [
state('void', style({
opacity: 0
})),
transition(':enter, :leave', [
animate('1s')
])
])
]
})
export class AppComponent {
title = 'angular-animations';
}
এখানে:
trigger('fade')
: একটি অ্যানিমেশন ট্রিগার তৈরি করে যার নাম fade
।state('void', style({ opacity: 0 }))
: এটি void
অবস্থার জন্য স্টাইল নির্ধারণ করে, যেটি কোনো এলিমেন্ট DOM থেকে সরানোর সময় হয়।transition(':enter, :leave', [animate('1s')])
: যখন এলিমেন্ট DOM এ আসে অথবা চলে যায়, তখন ১ সেকেন্ডের অ্যানিমেশন প্রয়োগ করা হবে।<div [@fade] class="fade-box">
This content will fade in and out.
</div>
এখানে, [@fade]
দ্বারা অ্যাঙ্গুলার অ্যানিমেশন ট্রিগারটিকে অ্যাপ্লাই করা হচ্ছে।
অ্যানিমেশন কনফিগারেশনে state(), transition(), এবং animate() এর আরও বিস্তারিত ব্যবহার দেখে নিন:
state('open', style({
height: '200px',
opacity: 1
})),
state('closed', style({
height: '100px',
opacity: 0.5
}))
from
এবং to
এর মধ্যে ট্রানজিশন হিসেবে ব্যবহৃত হয়।transition('open <=> closed', [
animate('500ms ease-in-out')
])
এখানে, যখন open
থেকে closed
অথবা closed
থেকে open
অবস্থায় পরিবর্তন হবে, তখন অ্যানিমেশন ৫০০ মিলিসেকেন্ডে সম্পন্ন হবে।
এখানে আমরা একটি স্লাইড অ্যানিমেশন তৈরি করবো যেখানে একটি ডিভ স্লাইড ইন এবং স্লাইড আউট হবে।
import { Component } from '@angular/core';
import { trigger, state, style, transition, animate } from '@angular/animations';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
animations: [
trigger('slide', [
state('in', style({
transform: 'translateX(0)'
})),
state('out', style({
transform: 'translateX(100%)'
})),
transition('in <=> out', [
animate('500ms ease-in-out')
])
])
]
})
export class AppComponent {
state = 'out';
toggleSlide() {
this.state = this.state === 'out' ? 'in' : 'out';
}
}
এখানে:
transform: 'translateX(0)'
এবং transform: 'translateX(100%)'
দিয়ে ডিভের স্লাইড ইন এবং আউট অবস্থার স্টাইল নির্ধারণ করা হয়েছে।toggleSlide()
মেথড দ্বারা স্লাইডের অবস্থান পরিবর্তন করা হয়।HTML:
<div [@slide]="state" class="slider">
Slide me in and out!
</div>
<button (click)="toggleSlide()">Toggle Slide</button>
Angular অ্যানিমেশন ব্যবহারের সময় পারফরমেন্স সংক্রান্ত কিছু বিষয় মনে রাখা গুরুত্বপূর্ণ। উদাহরণস্বরূপ:
transform
এবং opacity
) ব্যবহার করা, কারণ এগুলি সাধারণত রেন্ডারিং-এ কম লোড সৃষ্টি করে।Angular-এ অ্যানিমেশন তৈরি এবং কনফিগার করতে @angular/animations প্যাকেজ ব্যবহার করতে হয়। trigger()
, state()
, transition()
, এবং animate()
ডেকোরেটরের মাধ্যমে বিভিন্ন ধরণের অ্যানিমেশন তৈরি করা যায়। Angular অ্যানিমেশনগুলো খুবই শক্তিশালী এবং পারফরমেন্স-বান্ধব হতে পারে, যদি সঠিকভাবে ব্যবহৃত হয়।
Read more