简体   繁体   中英

How to adjust width of components in Angular while using Animations?

I am trying to use Angular Animations to slide my navbar and it's working perfectly but I need to adjust the width of my other components automatically when the navbar is hidden. Like I want my other components to take the width of whole page when the navbar is hidden but some reason the width of my other components only gets adjusted after I click on any component. Can anyone please help me out and guide me how to adjust the width?

I am using ngIf to display and hide the navbar component. When I display and hide the navbar without animations, the width gets adjusted automatically. Any leads would be helpful. Thanks!

navmenu.component.ts

@Component({
  selector: 'nav-menu',
  templateUrl: './navmenu.component.html',
  styleUrls: ['./navmenu.component.css'],

  animations: [
    trigger(
         'inOutAnimation',
         [
           transition(
             ':enter',
             [
               animate('1s ease-out',
                       style({ width: 300, opacity: 1 }))
             ]
           ),
           transition(
             ':leave',
             [
               animate('1s ease-in',
                       style({ width: 0, opacity: 0 }))
             ]
           )
         ]
       )
]

Made a rough mock on stackblitz: https://stackblitz.com/edit/angular-nn2yzn

Element containing nav and other elements needs to be display: flex , if the other element has flex: 1 it will take up any space thats available to it. So if the width of the nav shrinks, the other element will grow

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM