javascript - 在 Angular 中渲染完成后获取图像的尺寸
问题描述
我正在尝试获取组件中图像的渲染大小。使用 (load) 事件,我得到了当时显示的图像大小 (pic1) 以及页面完全呈现后的“最终”大小。我想我可以使用 ngAfterViewChecked 但这意味着当唯一有意义的实例是窗口打开或调整大小时,我会不断计算该大小
解决方案
- 您可以使用的另一种方法是,使用 订阅
Window: resize
事件更改HostListener
以计算图像尺寸,如以下代码片段所示。
import { HostListener } from '@angular/core';
@HostListener('window:resize', ['$event'])
// Invoke function to compute the image dimensions here
}
注意:您还可以调用该函数来计算生命周期挂钩内所述图像的尺寸,AfterViewInit
而不是在load
事件上。
Window: resize
另一种方法是通过使用 监听事件的变化来计算图像尺寸fromEvent
,如下面的代码片段所示。
import { fromEvent } from 'rxjs';
changeSubscription$: Subscription
ngOnInit() {
this.windowResizeEventChanges$ = fromEvent(window, 'resize').subscribe(event => {
// Invoke function to compute the image dimensions here
});
}
ngOnDestroy() {
this.windowResizeEventChangesn$.unsubscribe() // Unsubscribe to stop listening the changes in Window: resize
}
阅读更多关于fromEvent
这里。
推荐阅读
- python - Keras ValueError:形状 (32, 2) 和 (32, 4) 不兼容
- sql - 计算条件适用于两列的连续天数
- reactjs - 在反应中实现复选框
- kubernetes - 对于复杂的作业队列,推荐的方法是什么?
- java - 如何比较 ISO8601 格式的日期?
- java - Tomcat 中的 java.lang.NullPointerException
- python-3.x - python hidapi:Windows 与 Mac
- mysql - 找不到 MySql 端口 3306
- python - Pandas:如何返回不在另一个数据框中的值列表?
- python - 无法使用程序输入语句在 VSCode 中退出 iPython shell