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 计算当天是本年本月的第几周
Mar 22 Javascript
5款Javascript颜色选择器
Oct 25 Javascript
jQuery 跨域访问问题解决方法
Dec 02 Javascript
js中关于String对象的replace使用详解
May 24 Javascript
Jquery的hide及toggle方法让超链接慢慢消失
Sep 06 Javascript
使用Node.js实现HTTP 206内容分片的教程
Jun 23 Javascript
jQuery可见性过滤器:hidden和:visibility用法实例
Jun 24 Javascript
jquery+ajax实现注册实时验证实例详解
Dec 08 Javascript
微信小程序实现点击按钮修改view标签背景颜色功能示例【附demo源码下载】
Dec 06 Javascript
vue2.0 elementUI制作面包屑导航栏
Feb 22 Javascript
基于JS实现带动画效果的流程进度条
Jun 01 Javascript
详解为什么Vue中不要用index作为key(diff算法)
Apr 04 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模拟HTTP认证
2006/10/09 PHP
php输出表格的实现代码(修正版)
2010/12/29 PHP
php实现水仙花数示例分享
2014/04/03 PHP
详解WordPress开发中wp_title()函数的用法
2016/01/07 PHP
php面向对象基础详解【星际争霸游戏案例】
2020/01/23 PHP
Google韩国首页图标动画效果
2007/08/26 Javascript
IE JS编程需注意的内存释放问题
2009/06/23 Javascript
Web开发者必备的12款超赞jQuery插件
2010/12/03 Javascript
基于jquery的回到页面顶部按钮
2011/06/27 Javascript
jquery(live)中File input的change方法只起一次作用的解决办法
2011/10/21 Javascript
封装html的select标签的js操作实例
2013/07/02 Javascript
JavaScript获取和设置CheckBox状态的简单方法
2013/07/05 Javascript
使用jquery实现IE下按backspace相当于返回操作
2014/03/18 Javascript
js库Modernizr的介绍和使用
2015/05/07 Javascript
JS实现拖动滚动条评分的效果代码分享
2016/09/29 Javascript
JS 实现导航菜单中的二级下拉菜单的几种方式
2016/10/31 Javascript
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
2017/04/23 Javascript
ActiveX控件的使用-js实现打印超市小票功能代码详解
2017/11/22 Javascript
详解layui弹窗父子窗口之间传参数的方法
2018/01/16 Javascript
p5.js入门教程之鼠标交互的示例
2018/03/16 Javascript
JS合并两个数组的3种方法详解
2019/10/24 Javascript
[05:14]辉夜杯主赛事第二日 RECAP精彩回顾
2015/12/27 DOTA
python学习手册中的python多态示例代码
2014/01/21 Python
简单介绍Python的Django框架加载模版的方式
2015/07/20 Python
Python实现定时任务
2017/02/08 Python
python微信跳一跳系列之棋子定位像素遍历
2018/02/26 Python
详解Django-channels 实现WebSocket实例
2019/08/22 Python
tesserocr与pytesseract模块的使用方法解析
2019/08/30 Python
python利用openpyxl拆分多个工作表的工作簿的方法
2019/09/27 Python
Python箱型图绘制与特征值获取过程解析
2019/10/22 Python
Python @property装饰器原理解析
2020/01/22 Python
如何解决pycharm调试报错的问题
2020/08/06 Python
巴基斯坦电子产品购物网站:Home Shopping
2017/09/14 全球购物
群众路线教育实践活动学习笔记内容
2014/11/06 职场文书
教师个人年度总结
2015/02/11 职场文书
MySQL表的增删改查(基础)
2021/04/05 MySQL