提问者:小点点

Angular 9-如何在窗口大小改变期间获得子元素的宽度?


当用户更改窗口大小时,是否可能获得.displayItemCol的宽度? 我知道可以使用引用变量在ngoninit中获取。displayItemCol的宽度,但是在窗口大小改变期间是否可以动态地获取宽度? 我可以尝试使用ngonChanges(),但这将检测正在进行的任何更改。

<div class="main" fxLayout="row">
  <div class="displayItemsCol" fxLayout="column">
    <app-applied-filter-bar></app-applied-filter-bar>
    <app-search-results-list></app-search-results-list>
  </div>

  <div class="displayItemCol" fxLayout="column">
    <router-outlet></router-outlet>
  </div>
</div>

我也尝试了下面的方法,但是这给了我整个窗口的宽度。

<div (window:resize)="onResize($event) class="displayItemCol" fxLayout="column" >

@HostListener('window:resize', ['$event'])
onResize(event) {
  event.target.innerWidth;
}

共1个答案

匿名用户

在模板HTML中,将#element添加到div中,然后在ts中获取元素的宽度,如下所示:

@ViewChild('element', { static: true }) element: ElementRef;
@HostListener('window:resize', ['$event'])
onResize(event) {
  console.log(this.element.nativeElement.clientWidth)
}