jQuery图片加载显示loading效果


Posted in Javascript onNovember 04, 2016

在很多时候我们需要用到图片加载功能,在网上搜资料后就想为了以后使用方便重新整理了下,结果如图:

jQuery图片加载显示loading效果

最后一张是加载失败显示的图片,没找到合适的图片,先用他顶替。

jQuery图片加载显示loading效果

页面引用

<div class="container">
 <div class="row block" id="img-list">
 <div class="col-md-3">
  <img src="/Assets/OnePiece/1.jpg" class="img-thumbnail">
 </div>
 <div class="col-md-3">
  <img src="/Assets/OnePiece/2.jpg" class="img-thumbnail">
 </div>
 <div class="col-md-3">
  <img src="/Assets/OnePiece/3.jpg" class="img-thumbnail">
 </div>
 <div class="col-md-3">
  <img src="/Assets/OnePiece/4.jpg" class="img-thumbnail">
 </div>
 <div class="col-md-3">
  <img src="/Assets/OnePiece/5.jpg" class="img-thumbnail">
 </div>
 <div class="col-md-3">
  <img src="/Assets/OnePiece/6.jpeg" class="img-thumbnail">
 </div>
 <div class="col-md-3">
  <img src="/Assets/OnePiece/7.jpg" class="img-thumbnail">
 </div>
 <div class="col-md-3">
  <img src="/Assets/OnePiece/8.jpg" class="img-thumbnail">
 </div>
 </div>
</div>
<script src="~/Scripts/ImgLoading/ImgLoading.js"></script>
<script>
 $("#img-list").ImgLoading({
 errorimg: "/Scripts/ImgLoading/images/noimage.png",
 loadimg: "/Scripts/ImgLoading/images/load.gif",
 timeout: 800
 });
</script>

下面是插件脚本,为了突出加载的效果就加上了延迟时间。

;(function ($) {
 $.fn.extend({
 ImgLoading: function (options) {
 var defaults = {
 errorimg: "http://www.oyly.net/Images/default/Journey/journeydetail.png",
 loadimg: "http://www1.ytedu.cn/cnet/dynamic/presentation/net_23/images/loading.gif",
 Node: $(this).find("img"),
 timeout: 1000
 };
 var options = $.extend(defaults, options);
 var Browser = new Object();
 var plus = {
 BrowserVerify:function(){
  Browser.userAgent = window.navigator.userAgent.toLowerCase();
  Browser.ie = /msie/.test(Browser.userAgent);
  Browser.Moz = /gecko/.test(Browser.userAgent);
 },
 EachImg: function () {
  defaults.Node.each(function (i) {
  var img = defaults.Node.eq(i);
  plus.LoadEnd(Browser, img.attr("imgurl"), i, plus.LoadImg);
  })
 },
 LoadState:function(){
  defaults.Node.each(function (i) {
  var img = defaults.Node.eq(i);
  var url = img.attr("src");
  img.attr("imgurl", url);
  img.attr("src",defaults.loadimg);
  })
 },
 LoadEnd: function (Browser, url, imgindex, callback) {
  var val = url;
  var img = new Image();
  if (Browser.ie) {
  img.onreadystatechange = function () {
  if (img.readyState == "complete" || img.readyState == "loaded") {
  callback(img, imgindex);
  }
  }
  } else if (Browser.Moz) {
  img.onload = function () {
  if (img.complete == true) {
  callback(img, imgindex);
  }
  }
  }
  img.onerror = function () { img.src = defaults.errorimg }
  img.src = val;
 },
 LoadImg: function (obj, imgindex) {
  setTimeout(function () {
  defaults.Node.eq(imgindex).attr("src", obj.src);
  }, defaults.timeout);
 }
 }
 plus.LoadState();
 plus.BrowserVerify();
 plus.EachImg();
 }
 }); 
})(jQuery);

脚本是从网上搜索代码之后整理的,也是第一次写插件,如果有啥写的不对的,还请多多指教!

本文已被整理到了《jquery图片加载方法汇总》 ,欢迎大家学习阅读。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Jquery 获得服务器控件值的方法小结
May 11 Javascript
基于jQuery的弹出框插件
Mar 18 Javascript
jQuery-Tools-overlay 使用介绍
Jul 14 Javascript
两个数组去重的JS代码
Dec 04 Javascript
javascript实现获取浏览器版本、操作系统类型
Jan 29 Javascript
Javascript 高阶函数使用介绍
Jun 15 Javascript
javascript将DOM节点添加到文档的方法实例分析
Aug 04 Javascript
Javascript中call,apply,bind方法的详解与总结
Dec 12 Javascript
vue中的数据绑定原理的实现
Jul 02 Javascript
JS中DOM元素的attribute与property属性示例详解
Sep 04 Javascript
详解Vue.js iview实现树形权限表(可扩展表)
Sep 30 Javascript
Vue的过滤器你真了解吗
Feb 24 Vue.js
JavaScript 深层克隆对象详解及实例
Nov 03 #Javascript
jQuery.ajax实现根据不同的Content-Type做出不同的响应
Nov 03 #Javascript
简单学习vue指令directive
Nov 03 #Javascript
Vue.js常用指令汇总(v-if、v-for等)
Nov 03 #Javascript
巧用Vue.js+Vuex制作专门收藏微信公众号的app
Nov 03 #Javascript
原生javascript实现的ajax异步封装功能示例
Nov 03 #Javascript
探索Vue.js component内容实现
Nov 03 #Javascript
You might like
PHP生成条形码大揭秘
2015/09/24 PHP
PHP的全局错误处理详解
2016/04/25 PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
2019/10/18 PHP
javascript数组的扩展实现代码集合
2008/06/01 Javascript
jQuery随便控制任意div隐藏的方法
2013/06/28 Javascript
jquery为页面增加快捷键示例
2014/01/31 Javascript
网页实时显示服务器时间和javscript自运行时钟
2014/06/09 Javascript
node.js 开发指南 ? Node.js 连接 MySQL 并进行数据库操作
2014/07/29 Javascript
JavaScript基础知识学习笔记
2014/12/02 Javascript
常用DOM整理
2015/06/16 Javascript
JSON简介以及用法汇总
2016/02/21 Javascript
JS Select下拉框(支持输入模糊查询)
2017/02/04 Javascript
jQuery+ajax实现局部刷新的两种方法
2017/06/08 jQuery
代码详解JS操作剪贴板
2018/02/11 Javascript
D3.js实现简洁实用的动态仪表盘的示例
2018/04/04 Javascript
Vuerouter的beforeEach与afterEach钩子函数的区别
2018/12/26 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
2019/03/13 Javascript
Async/Await替代Promise的6个理由
2019/06/15 Javascript
vue.js实现照片放大功能
2020/06/23 Javascript
[02:39]DOTA2英雄基础教程 极限穿梭编织者
2013/12/05 DOTA
[02:06]2018完美世界全国高校联赛秋季赛开始报名(附彩蛋)
2018/09/03 DOTA
Python实现的读取电脑硬件信息功能示例
2018/05/30 Python
.dcm格式文件软件读取及python处理详解
2020/01/16 Python
Python gevent协程切换实现详解
2020/09/14 Python
HTML5中的postMessage API基本使用教程
2016/05/20 HTML / CSS
英国排名第一的最新设计师品牌手表独立零售商:TIC Watches
2016/09/24 全球购物
Annoushka英国官网:英国奢侈珠宝品牌
2018/10/20 全球购物
可以使用抽象函数重写基类中的虚函数吗
2013/06/02 面试题
男方父母证婚词
2014/01/12 职场文书
社区工作感言
2014/02/21 职场文书
大学生优秀班干部事迹材料
2014/05/26 职场文书
2016高考冲刺决心书
2015/09/23 职场文书
李清照的诗词赏析(20首)
2019/08/22 职场文书
CSS3实现360度循环旋转功能
2022/02/12 HTML / CSS
Anaconda安装pytorch和paddle的方法步骤
2022/04/03 Python
WIN10使用IIS部署ftp服务器详细教程
2022/08/05 Servers