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中判断数字\字母\中文的正则表达式 (实例)
Jun 29 Javascript
JS.GetAllChild(element,deep,condition)使用介绍
Sep 21 Javascript
jquery选择checked在ie8普通模式下的问题
Feb 12 Javascript
JS实现日期时间动态显示的方法
Dec 07 Javascript
全面了解JavaScript对象进阶
Jul 19 Javascript
微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
Nov 22 Javascript
js实现鼠标拖动功能
Mar 20 Javascript
vue--点击当前增加class,其他删除class的方法
Sep 15 Javascript
基于Vue组件化的日期联动选择器功能的实现代码
Nov 30 Javascript
vue cli3.0结合echarts3.0与地图的使用方法示例
Mar 26 Javascript
js实现列表向上无限滚动
Jan 13 Javascript
vue+echarts+datav大屏数据展示及实现中国地图省市县下钻功能
Nov 16 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
php mysql Errcode: 28 终极解决方法
2009/07/01 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
2016/08/17 PHP
PHP PDOStatement::rowCount讲解
2019/02/01 PHP
JS实现打开本地文件或文件夹
2021/03/09 Javascript
FLASH 广告之外的链接
2008/12/16 Javascript
Javascript创建自定义对象 创建Object实例添加属性和方法
2012/06/04 Javascript
使用jQuery清空file文件域的解决方案
2013/04/12 Javascript
Extjs 继承Ext.data.Store不起作用原因分析及解决
2013/04/15 Javascript
解决IE6的PNG透明JS插件使用介绍
2013/04/17 Javascript
JavaScript运算符小结
2015/06/03 Javascript
jQuery实现表格行上下移动和置顶效果
2015/06/05 Javascript
Javascript实现鼠标右键特色菜单
2015/08/04 Javascript
Vuejs第六篇之Vuejs与form元素实例解析
2016/09/05 Javascript
js 转json格式的字符串为对象或数组(前后台)的方法
2016/11/02 Javascript
Javascript 两种刷新方法以及区别和适用范围
2017/01/17 Javascript
Javascript同时声明一连串(多个)变量的方法
2017/01/23 Javascript
利用Node.js对文件进行重命名
2017/03/12 Javascript
vue2实现移动端上传、预览、压缩图片解决拍照旋转问题
2017/04/13 Javascript
详解升级react-router 4 踩坑指南
2017/08/14 Javascript
JS设计模式之观察者模式实现实时改变页面中金额数的方法
2018/02/05 Javascript
vue中v-model的应用及使用详解
2018/06/27 Javascript
JavaScript惰性载入函数实例分析
2019/03/27 Javascript
VUE的history模式下除了index外其他路由404报错解决办法
2019/08/21 Javascript
jQuery - AJAX load() 实例用法详解
2019/08/27 jQuery
node.js中 redis 的安装和基本操作示例
2020/02/10 Javascript
js实现滑动滑块验证登录
2020/07/24 Javascript
python删除指定类型(或非指定)的文件实例详解
2015/07/06 Python
Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
2017/04/17 Python
python处理csv中的空值方法
2018/06/22 Python
Python递归及尾递归优化操作实例分析
2020/02/01 Python
纯CSS3制作漂亮带动画效果的主机价格表
2015/04/25 HTML / CSS
UNIX文件系统常用命令
2012/05/25 面试题
简短的公司员工自我评价分享
2013/11/13 职场文书
2014年教师节国旗下讲话稿
2014/09/10 职场文书
2014年党总支工作总结
2014/12/18 职场文书
Oracle 触发器trigger使用案例
2022/02/24 Oracle