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实例教程(19) 使用HoTMetal(7)
Dec 23 Javascript
JavaScript 替换Html标签实现代码
Oct 14 Javascript
Javascript实现视频轮播在pc端与移动端均可
Sep 29 Javascript
JavaScript对象创建模式实例汇总
Oct 03 Javascript
JavaScript实现弹出广告功能
Mar 30 Javascript
vue 将页面公用的头部组件化的方法
Dec 18 Javascript
express如何使用session与cookie的方法
Jan 30 Javascript
vue升级之路之vue-router的使用教程
Aug 14 Javascript
js jquery 获取某一元素到浏览器顶端的距离实现方法
Sep 05 jQuery
vue实现一个炫酷的日历组件
Oct 08 Javascript
js闭包的9个使用场景
Dec 29 Javascript
梳理一下vue中的生命周期
Dec 30 Vue.js
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实现网站访问量计数器
2017/10/27 PHP
PHP PDOStatement::nextRowset讲解
2019/02/01 PHP
帮助避免错误的Javascript陷阱清单
2009/05/31 Javascript
Jquery判断IE6等浏览器的代码
2011/04/05 Javascript
Javascript 页面模板化很多人没有使用过的方法
2012/06/05 Javascript
formvalidator验证插件中有关ajax验证问题
2013/01/04 Javascript
js 文本滚动效果的实例代码
2013/08/17 Javascript
DOM节点的替换或修改函数replaceChild()用法实例
2015/01/12 Javascript
json格式数据的添加,删除及排序方法
2016/01/21 Javascript
js实现图片缓慢放大缩小效果
2016/08/02 Javascript
js实现下拉菜单效果
2017/03/01 Javascript
jQuery ajax动态生成table功能示例
2017/06/14 jQuery
js断点调试经验分享
2017/12/08 Javascript
jquery.picsign图片标注组件实例详解
2018/02/02 jQuery
Node.js文件编码格式的转换的方法
2018/04/27 Javascript
IE8中jQuery.load()加载页面不显示的原因
2018/11/15 jQuery
微信小程序时间轴实现方法示例
2019/01/14 Javascript
JavaScript写个贪吃蛇小游戏(超详细)
2020/03/17 Javascript
[43:03]LGD vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
Python挑选文件夹里宽大于300图片的方法
2015/03/05 Python
python命令行工具Click快速掌握
2019/07/04 Python
Django对models里的objects的使用详解
2019/08/17 Python
详解一种用django_cache实现分布式锁的方式
2019/09/01 Python
基于Python检测动态物体颜色过程解析
2019/12/04 Python
解决python执行较大excel文件openpyxl慢问题
2020/05/15 Python
浅谈python 调用open()打开文件时路径出错的原因
2020/06/05 Python
全网最细 Python 格式化输出用法讲解(推荐)
2021/01/18 Python
浅谈移动端网页图片预加载方案
2018/11/05 HTML / CSS
在html页面中取得session中的值的方法
2020/08/11 HTML / CSS
全国文明单位申报材料
2014/05/31 职场文书
企业宣传工作方案
2014/06/02 职场文书
销售竞赛活动方案
2014/08/23 职场文书
教师考核表个人总结
2015/02/12 职场文书
2015年银行个人工作总结
2015/05/14 职场文书
火烧圆明园观后感
2015/06/03 职场文书
Ajax实现三级联动效果
2021/10/05 Javascript