javascript - 如何异步删除类函数?

标签 javascript jquery image angular asynchronous

我正在为我的 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/

相关文章:

jquery - 确定我点击的 div 中图像的索引

android - 如何使用 glide :3. 6.0 将 GIF 图像从可绘制文件夹加载到 ImageView

javascript - React 中类外部的函数或变量

javascript - IE 中的 AngularJS 错误与样式与 ng 样式

javascript - 仅捆绑 React native 组件

javascript - 如何上传文件到页面路径?

javascript - HTML5 网络音频 API : Filters is not working

javascript - HTML 表单不会捕获 Bootstrap 响应表中的所有复选框

linux - 如何运行 dockerfile?

android - 将图像添加到 jar 库