你的代码是监听window对象,所以只能获取window的innerHeight和innerWidth。有两种解决方案可以获取当前窗口高度。
获取 Window Sizes
Angular 窗口大小调整事件事件
绑定:
<div (window:resize)="onResizeHandler($event)">...</div>
public onResizeHandler(event): void {
event.target.innerWidth;
event.target.innerHeight;
}
Host Listener Decorator:(更简洁的方法!)
@HostListener('window:resize', ['$event'])
onResizeHandler(event: Event): void {
event.target.innerWidth;
event.target.innerHeight;
}
组件大小:
有一些方法可以获得组件大小,但这是一个非常低效的解决方案!!!!!!使用时要小心。底层 NativeElement Api 将直接访问 DOM!
https://angular.io/api/core/ElementRef
编辑:
要清楚,用这个解决方案读取元素会很好。如果您需要操作元素,请务必使用Renderer2
https://angular.io/api/core/Renderer2
// Inject a element reference into your component constuctor
...
constructor(private elementRef: ElementRef) {...}
// implement a listener on window:resize and attach the resize handler to it
public onResizeHandler(): void {
this.elementRef.nativeElement.offsetHeight
this.elementRef.nativeElement.offsetWidth
}
如果您只想更改调整大小事件的样式,
请务必在您的 css/scss 中使用 @media 查询。这将是最好的方法!