Customize animation settings in Angular Menu component
12 Sep 20255 minutes to read
You can customize the animation behavior of the Angular Menu component using the animationSettings property. This allows you to control how the menu appears and disappears, enhancing the user experience with smooth transitions.
Available animation effects
The following animation effects are supported:
| Effect | Functionality | 
|---|---|
| None | Specifies the sub menu transform with no animation effect. | 
| SlideDown | Specifies the sub menu transform with slide down effect. | 
| ZoomIn | Specifies the sub menu transform with zoom in effect. | 
| FadeIn | Specifies the sub menu transform with fade in effect. | 
The following sample illustrates how to open Menu with FadeIn effect with the duration of 800ms. Also we can set easing for menu items.
import { NgModule } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser'
import { MenuModule } from '@syncfusion/ej2-angular-navigations'
import { Component } from '@angular/core';
import { enableRipple } from '@syncfusion/ej2-base';
import { MenuItemModel, MenuAnimationSettingsModel } from '@syncfusion/ej2-angular-navigations';
enableRipple(true);
@Component({
imports: [ MenuModule],
standalone: true,
    selector: 'app-root',
    template: `<div class="e-section-control">
            <!-- To Render Menu. -->
            <ejs-menu [items]='menuItems' [animationSettings]='animationSettings'></ejs-menu></div>`
})
export class AppComponent {
    public animationSettings: MenuAnimationSettingsModel = {
        effect: 'FadeIn',
        duration: 800
    }
    public menuItems: MenuItemModel[] = [
        {
            text: 'File',
            items: [
                { text: 'Open' },
                { text: 'Save' },
                { text: 'Exit' }
            ]
        },
        {
            text: 'Edit',
            items: [
                { text: 'Cut' },
                { text: 'Copy' },
                { text: 'Paste' }
            ]
        },
        {
            text: 'View',
            items: [
                { text: 'Toolbar' },
                { text: 'Sidebar' }
            ]
        },
        {
            text: 'Tools',
            items: [
                { text: 'Spelling & Grammar' },
                { text: 'Customize' },
                { text: 'Options' }
            ]
        },
        { text: 'Go' },
        { text: 'Help' }
    ];
}import { bootstrapApplication } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import 'zone.js';
bootstrapApplication(AppComponent).catch((err) => console.error(err));