我正在为我的 Angular 应用程序中的图像使用自定义指令,在该指令中,我想添加占位符图像,直到图像加载并且占位符图像必须与“无图像”类一起应用。这就是我所做的:
loadImage(image: string) {
let defaultImage = this._getLocalResource(this._NO_IMAGE);
this.currentElement.className = 'no-image';
this.currentElement.src = defaultImage;
const img = new Image();
if (image) {
img.src = image;
} else {
img.src = defaultImage;
}
img.onload = () => {
this.currentElement.classList.remove('no-image');
this.currentElement.src = img.src;
};
img.onerror = err => {
this.currentElement.class = 'no-image';
this.currentElement.src = defaultImage;
};
}
我的问题是,当图像加载时(在 onload 函数内),删除“无图像”类需要一些时间,并且加载的图像会使用“无图像”类渲染几分之一秒。这导致了不愉快的用户体验。
在成功删除该类后,有什么方法可以将加载的图像分配给 currentElement.src ,或者是否有任何异步方法可以删除该类?
最佳答案
您可以尝试延迟 this.currentElement.src = img.src; 行者 settimeout
关于javascript - 如何异步删除类函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47330998/