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 相关文章推荐
JS 动态加载脚本的4种方法
May 05 Javascript
javascript实用小函数使用介绍
Nov 11 Javascript
学习JavaScript设计模式(代理模式)
Dec 03 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
Oct 28 Javascript
js实现文本上下来回滚动
Feb 03 Javascript
Vue2.0父组件与子组件之间的事件发射与接收实例代码
Sep 19 Javascript
使用javaScript实现鼠标拖拽事件
Apr 03 Javascript
vue自定义一个v-model的实现代码
Jun 21 Javascript
vue.js添加一些触摸事件以及安装fastclick的实例
Aug 28 Javascript
vue 使用async写数字动态加载效果案例
Jul 18 Javascript
解决vue单页面 回退页面 keeplive 缓存问题
Jul 22 Javascript
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
Dec 10 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
德生S2000电路分析
2021/03/02 无线电
PHP编码转换
2012/11/05 PHP
Thinkphp搭建包括JS多语言的多语言项目实现方法
2014/11/24 PHP
PHP中in_array函数使用的问题与解决办法
2016/09/11 PHP
PHP结合Ueditor并修改图片上传路径
2016/10/16 PHP
Javascript学习笔记4 Eval函数
2010/01/11 Javascript
解析img图片没找到onerror事件 Stack overflow at line: 0
2013/12/23 Javascript
nodejs下打包模块archiver详解
2014/12/03 NodeJs
JS实现简单的右下角弹出提示窗口完整实例
2016/06/21 Javascript
AngularJS模仿Form表单提交的实现代码
2016/12/08 Javascript
Vue.js bootstrap前端实现分页和排序
2017/03/10 Javascript
Javascript(es2016) import和require用法和区别详解
2017/08/11 Javascript
vue2.0组件之间传值、通信的多种方式(干货)
2018/02/10 Javascript
vue实现自定义H5视频播放器的方法步骤
2019/07/01 Javascript
Vue-router 报错NavigationDuplicated的解决方法
2020/03/31 Javascript
python简单分割文件的方法
2015/07/30 Python
Python中MySQLdb和torndb模块对MySQL的断连问题处理
2015/11/09 Python
Python设计模式之抽象工厂模式
2016/08/25 Python
Scrapy的简单使用教程
2017/10/24 Python
python判断一个数是否能被另一个整数整除的实例
2018/12/12 Python
Python+Selenium使用Page Object实现页面自动化测试
2019/07/14 Python
Pycharm创建项目时如何自动添加头部信息
2019/11/14 Python
浅谈selenium如何应对网页内容需要鼠标滚动加载的问题
2020/03/14 Python
python使用PIL剪切和拼接图片
2020/03/23 Python
Python3将ipa包中的文件按大小排序
2020/04/17 Python
python 密码学示例——凯撒密码的实现
2020/09/21 Python
西雅图电动自行车公司:Rad Power Bikes
2020/02/02 全球购物
马德里运动鞋商店:Nigra Mercato
2020/02/16 全球购物
澳大利亚著名的纺织品品牌:Canningvale
2020/05/05 全球购物
在DELPHI中调用存储过程和使用内嵌SQL哪种方式更好
2016/11/22 面试题
银行员工职业规划范文
2014/01/21 职场文书
工作经历证明书范文
2014/11/02 职场文书
小学生毕业评语
2014/12/26 职场文书
2015年公司后勤管理工作总结
2015/05/13 职场文书
2015年体检中心工作总结
2015/05/27 职场文书
Python中re模块的元字符使用小结
2022/04/07 Python