vue实现图片加载完成前的loading组件方法


Posted in Javascript onFebruary 05, 2018

如下所示:

<template>
 <img :src="url">
</template>
<script>
 export default {
  props: ['src'], // 父组件传过来所需的url
  data() {
   return {
    url: 'http://www.86y.org/images/loading.gif' // 先加载loading.gif
   }
  },
  mounted() {
   var newImg = new Image()
   newImg.src = this.src
   newImg.onerror = () => { // 图片加载错误时的替换图片
    newImg.src = 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1489486509807&di=22213343ba71ad6436b561b5df999ff7&imgtype=0&src=http%3A%2F%2Fa0.att.hudong.com%2F77%2F31%2F20300542906611142174319458811.jpg'
   }
   newImg.onload = () => { // 图片加载成功后把地址给原来的img
    this.url = newImg.src
   }
  }
 }
</script>

以下为纯js代码

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>loading</title>
</head>
<body>
 <img id="img">
 <script>
  window.onload = () => {
   var img = document.querySelector('#img');
   img.src = 'http://www.86y.org/images/loading.gif'; // 先加载loading.gif
   var newImg = new Image();
   newImg.src = 'https://avatars3.githubusercontent.com/u/1?v=3';
   newImg.onerror = () => { // 图片加载错误时的替换图片
    newImg.src = 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1489486509807&di=22213343ba71ad6436b561b5df999ff7&imgtype=0&src=http%3A%2F%2Fa0.att.hudong.com%2F77%2F31%2F20300542906611142174319458811.jpg';
   }
   newImg.onload = () => { // 图片加载成功后把地址给原来的img
    img.src = newImg.src
   }
  }
 </script>
</body>
</html>

以上这篇vue实现图片加载完成前的loading组件方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript中的window.location.search方法简介
Sep 02 Javascript
js 数组操作之pop,push,unshift,splice,shift
Jan 29 Javascript
JQuery与JS里submit()的区别示例介绍
Feb 17 Javascript
JS控制弹出新页面窗口位置和大小的方法
Mar 02 Javascript
有关easyui-layout中的收缩层无法显示标题的解决办法
May 10 Javascript
微信小程序中顶部导航栏的实现代码
Mar 30 Javascript
详解js的视频和音频采集
Aug 09 Javascript
layer弹出层 iframe层去掉滚动条的实例代码
Aug 17 Javascript
Vue源码中要const _toStr = Object.prototype.toString的原因分析
Dec 09 Javascript
Vue2.x Todo之自定义指令实现自动聚焦的方法
Jan 08 Javascript
js回文数的4种判断方法示例
Jun 04 Javascript
JavaScript异步操作中串行和并行
Nov 20 Javascript
JS设计模式之策略模式概念与用法分析
Feb 05 #Javascript
Node.js成为Web应用开发最佳选择的原因
Feb 05 #Javascript
Node.js上传文件功能之服务端如何获取文件上传进度
Feb 05 #Javascript
javascript实现最长公共子序列实例代码
Feb 05 #Javascript
JS设计模式之访问者模式定义与用法分析
Feb 05 #Javascript
基于vue 动态加载图片src的解决方法
Feb 05 #Javascript
vue2.0 datepicker使用方法
Feb 04 #Javascript
You might like
第十四节 命名空间 [14]
2006/10/09 PHP
php下载文件源代码(强制任意文件格式下载)
2014/05/09 PHP
php 批量添加多行文本框textarea一行一个
2014/06/03 PHP
Laravel 5 框架入门(四)完结篇
2015/04/09 PHP
php使用MySQL保存session会话的方法
2015/06/26 PHP
php获取从百度、谷歌等搜索引擎进入网站关键词的方法
2015/07/08 PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
2015/09/23 PHP
php有效防止图片盗用、盗链的两种方法
2016/11/01 PHP
PHP 文件上传限制问题
2019/09/01 PHP
鼠标移动到一张图片时变为另一张图片
2006/12/05 Javascript
php对mongodb的扩展(小试牛刀)
2012/11/11 Javascript
jqueryUI里拖拽排序示例分析
2015/02/26 Javascript
jQuery链式操作实例分析
2015/11/16 Javascript
使用struts2+Ajax+jquery验证用户名是否已被注册
2016/03/22 Javascript
webpack打包js的方法
2018/03/12 Javascript
深入解析ES6中的promise
2018/11/08 Javascript
Nodejs处理异常操作示例
2018/12/25 NodeJs
详解vue-router的Import异步加载模块问题的解决方案
2020/05/13 Javascript
JS JQuery获取data-*属性值方法解析
2020/09/01 jQuery
[45:56]Ti4正赛第一天 VG vs NEWBEE 3
2014/07/19 DOTA
Ubuntu下创建虚拟独立的Python环境全过程
2017/02/10 Python
python构建深度神经网络(续)
2018/03/10 Python
python实现两个文件合并功能
2018/04/01 Python
python Spyder界面无法打开的解决方法
2018/04/27 Python
解决python 无法加载downsample模型的问题
2018/10/25 Python
Python 内存管理机制全面分析
2021/01/16 Python
手术室护士自我鉴定
2013/10/14 职场文书
投资协议书范本
2014/04/21 职场文书
优秀团干部个人事迹
2014/05/29 职场文书
职务任命书范本
2014/06/05 职场文书
大班亲子运动会方案
2014/06/10 职场文书
合同意向书范本
2014/07/30 职场文书
捐款仪式主持词
2015/07/04 职场文书
四年级数学教学反思
2016/02/16 职场文书
OpenCV 图像梯度的实现方法
2021/07/25 Python
【DOTA2】半决赛强强对话~ PSG LGD vs EHOME - DPC 2022 CN REGIONAL FINALS WINTER
2022/04/02 DOTA