业务场景

用户创建自己的页面,给创建好的内容页面增加皮肤效果。选择某一皮肤后,当该皮肤中的所有图片都加载完后,再展示皮肤效果;加载图片的时候展示loading效果。

部分页面展示如下:

工具代码

在utils.js文件中写如下代码,当图片加载完成后执行callback函数:

export function loadImageEnd(list, callback, basePath) {if (!list || list.length === 0) return;if (basePath) list = list.map(item => basePath + item);let img = new Image();img.data = {list: list,callback: callback,resultList: [],num: 0}img.addEventListener("load", loadImgHandler);img.addEventListener("error", loadImgHandler);img.src = list[img.data.num];
}function loadImgHandler(e) {let data = e.currentTarget.data;if (e.type !== 'error') {data.resultList.push(e.currentTarget.cloneNode(false));}data.num++;if (data.num > data.list.length - 1) {e.currentTarget.removeEventListener("load", loadImgHandler);if (data.callback) {data.callback(data.resultList);}data = null;return;}e.currentTarget.src = data.list[data.num];
}

使用

  • 第一个参数为所有图片路径的数组。
  • 第二个参数为所有图片加载完成后的回调函数。
  • 第三个参数为所有图片的前置路径,如果已经是完整路径,则不需要传此参数。
import { loadImgEnd ) from '@/utils'
export default {data(){return {isLoading:true}},methods:{//选择皮肤的事件clickHandle(id){let imgArr = [];//当前皮肤中所有的图片路径loadImgEnd(imgArr,()=>{this.isLoading = false;})}}
}

vue项目中使用Js判断图片是否加载完 所有图片加载完成前展示Loading效果相关推荐

  1. vue项目中,js根据文件名后缀,判断文件图片、视频、文档、pdf等类型的方法

    vue项目中,在获得文件名信息,需要根据文件名的后缀来区分文件类型的方法如下:其中,文件后缀可自由拓展. // 根据文件名后缀区分 文件类型/** @param: fileName - 文件名称* @ ...

  2. vue项目中img使用svg图片修改颜色

    需求:就是左边是文字,右边是文字,中间是一个箭头图片 前言:抛开vue项目已经封装好了svg的组件这种来讲,封装的可以直接使用color来进行改变颜色,然后这里讲下没有封装的写法 1:首先改svg图片 ...

  3. Vue项目中实现消息提示/报警/未读消息(铃铛加小圆点闪烁效果)

    在项目开发过程中,可能需要实现以下场景:未读消息提示.报警信息.消息通知等,这些功能往往是在页面的右上角设置一个铃铛,在铃铛或者图标的右上角显示消息数并做呼吸灯效果显示 下面分享一下这类效果的实现方法 ...

  4. 关于vue项目中在js中引入图片问题

    <template> <div> <img v-for="(star,index) in stars" :src="star.src&quo ...

  5. vue项目中,图片无法显示时或者访问图片出现404时,显示默认图片,但默认图片路径出错

    问题描述 在vue项目中,同样的图片,设置在img的src中能正常显示  设置在img的onerror中不能正常显示 原因 项目启动后, 图片的路径并不是我们写的路径了. 示例:  源代码: // 直 ...

  6. Vue - 项目中使用iconfont(阿里图标库)

    项目中如何使用iconfont(阿里图标库) 一. 登陆iconfont官网: https://www.iconfont.cn/ 二. 创建一个图标项目 1.点击"图标管理"子目录 ...

  7. Vue项目中利用pdf.js实现pdf内容滑选文字展示与搜索功能

    Vue项目中利用pdf.js实现pdf内容滑选文字展示与搜索功能 需求:在pdf中鼠标滑动选中一段文字,将选中文字展示到input框中(pdf在iframe中) 完成效果: 关于pdf的引用:我是直接 ...

  8. svg图片在vue项目中的应用

    svg图片在vue项目中的应用 一.安装 svg-sprite-loader 插件 npm install svg-sprite-loader 二.基于 vue-cli2.x 项目 webpack 配 ...

  9. vue 项目中使用three.js实现vr360度全景图片预览

    vue 项目中使用three.js实现vr360度全景图片预览 当前demo使用的three.js为0.115.0版本 项目中安装three npm install three 安装完成再组件如下导入 ...

  10. Vue项目中最简单的使用集成UEditor方式,含图片上传

    Vue 3 项目参考这里 前言 封面是UEditor的 百度指数 折线图.虽然今天已经是 2018 年,且优秀的富文本编辑器层出不穷(包括移动端),但从图中可以看出UEditor仍然维持着较高的搜索热 ...

最新文章

  1. 如何使用 OpenCV 开发虚拟键盘
  2. Android异步下载网络图片(其二:AsyncTask)
  3. 《机器学习实战》chapter04 使用Python进行文本分类
  4. linux将屏幕输出到文件,Linux命令执行的屏幕输出内容重定向到日志文件
  5. c语言把字符串写入文件,c语言文件读写 | 按字符,按行,按块
  6. 知道 | 同学,你都了解关系型数据库,确定不了解一下这种数据库吗?
  7. RouterOS 5.22固定公网IP共享上网设置
  8. Windows 7中配置IPv6需要注意的那点事
  9. 线程中消费者生产者的实例代码(synchronized关键字)
  10. EverEdit 4.2.0.4457 免安装已激活 x64
  11. 生命苍白无力时候遇到你,即使再难也要亲手绘出五彩生活――读《平凡的世界》有感
  12. 有创意的思维导图怎么画
  13. 大数据Spark(三十九):SparkStreaming实战案例四 窗口函数
  14. tlc5615 c语言程序,第10章 TLC5615数模转换器DAC
  15. android中listView下拉刷新
  16. Google Voice的简单介绍。(一点都不简单)
  17. NFS服务器搭建指南
  18. 修改注册表来修改文件关联
  19. 核心微生物分析_科学网—微生物组核心OTU鉴定usearch otutab_core - 刘永鑫的博文...
  20. Fusion 360 免费正版下载教程(个人版)

热门文章

  1. 山东理工ACM 1603 Least Common Multiple
  2. comsol学习之模拟杯中水对流-二维轴对称流体传热
  3. 不锈钢水处理过滤器在食品领域中的运用
  4. 不是谁多情,亦不是谁薄情
  5. Type-C笔记本电脑全功能TCPC接口方案
  6. 百度搜索下拉框及百度相关搜索中刷关键字方法
  7. W25Q128 Flash
  8. volatility 基本用法
  9. ecshop 添加会员头像功能
  10. 效率提升98%!高海拔光伏电站运维巡检背后的AI利器