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图片加载显示loading和加载失败默认图片的更多相关文章
- img加载不出来,给个默认图片。
		
忽然发现,jq里也有坑,很多东西莫名其妙的被废弃了……所以,只能用原生js来做了: $('img').each(function() { if (!this.complete || typeof th ...
 - jquery Ajax请求中显示Loading...
		
jquery Ajax请求中显示Loading... $('#btnTest').click(function(){ $.ajax({ url ---- ,根据你需要设置 ...
 - 图片未完成加载显示loading
		
<html> <title>js图片未加载完显示loading效果</title> <body> <style> img{float:lef ...
 - image的加载事件(onload)和加载状态(complete)
		
之前做过这样一个需求,要让商家页的商家图片按照图片外面box的大小等比例缩放.之前的想法是在页面中先输出图片的src,然后在页面底部初始化js,然后在js中写相应的可以使图片按照box的大小等比例缩放 ...
 - img图片加载失败默认图片
		
<img :src="item.goods_pic" onerror="javascript:this.src='../static/images/default. ...
 - IOS之文件夹创建、删除,图片在本地的保存和加载
		
本文转自http://blog.csdn.net/toddmi/article/details/8204102 = (NSCachesDirectory, NSUserDomainMask, YES) ...
 - 【html+css3】在一张jpg图片上,显示多张透明的png图片
		
1.需求:在一个div布局里面放置整张jpg图片,然后在jpg图片上显示三张水平展示的透明png图片,且png外层用a标签包含菜单 2.效果图: 3.上图,底层使用蓝色jpg图片,[首页].[购物车] ...
 - Android图片加载库:最全面的Picasso讲解
		
前言 上文已经对当今 Android主流的图片加载库 进行了全面介绍 & 对比 如果你还没阅读,我建议你先移步这里阅读 今天我们来学习其中一个Android主流的图片加载库的使用 - Pica ...
 - 使用HTML5 canvas做地图(3)图片加载平移放大缩小
		
终于开始可以写代码了,手都开始痒了.这里的代码仅仅是在chrome检测过,我可以肯定的是IE10以下浏览器是行不通,我一直在考虑,是不是使用IE禁止看我的篇博客,就是这群使用IE的人,给我加了很多工作 ...
 
随机推荐
- django参考博客学习
			
网上发现其他人的一个django系列博客,和我学的一样是黑马的,写的挺不错的,转载学习一下 https://blog.csdn.net/u014745194/article/category/6989 ...
 - python 之  比较哪个数据大小
			
#定义一个字典info={}#定义比较的人数n=int(input("请输入你要比较的人数"))#循环while(n): #输入a,b 两个数据 ,分别代表学号 和分数 # 把输入 ...
 - Java最常见的200+面试题及自己梳理的答案--面试必备(一)
			
昨天在今日头条上看到一份所谓经常面别人的TL梳理的面试题,看着比较完善,但是,没有对应的答案,自己看着研究学习了下,顺带梳理下答案.主要包括以下模块:Java基础.容器.多线程.反射.对象拷贝.Jav ...
 - C#-进制转换、基础语句、语句的总结与练习——★for循环:九九乘法表、三角形、菱形★
			
//for循环嵌套练习——打一个九九乘法表 ; i <= ; i++) { ; j <= i; j++) { Console.Write(j + "×" + i + & ...
 - (原创推荐文章)kerberos服务器端与客户端
			
#环境 两台装centos7的虚拟机即可. kerberos服务器端与客户端各一台 (本文档推荐使用Typora软件观看) # 1.kerberos服务器端配置 ## 1.1安装配置Kerberos ...
 - Python【每日一问】17
			
问: [基础题]:简述Python的异常处理机制[提高题]:请实现一个函数,将一个字符串中的空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%2 ...
 - LOJ2229. 「BJOI2014」想法(随机化)
			
题目链接 https://loj.ac/problem/2229 题解 评分标准提示我们可以使用随机化算法. 首先,我们为每一道编号在 \([1, m]\) 以内的题目(这些题目也对应了 \(m\) ...
 - Smarty  <= 3.1.32 Remote Code execution(CVE-2017-1000480)
			
Smarty介绍 smarty是一个php模板引擎,其项目地址:https://github.com/smarty-php/smarty 测试环境搭建 下载:https://github.co ...
 - 2019.04.11 第四次训练 【 2017 United Kingdom and Ireland Programming Contest】
			
题目链接: https://codeforces.com/gym/101606 A: ✅ B: C: ✅ D: ✅ https://blog.csdn.net/Cassie_zkq/article/ ...
 - ServiceLoader解读
			
SPI的全名为Service Provider Interface.普通开发人员可能不熟悉,因为这个是针对厂商或者插件的.在java.util.ServiceLoader的文档里有比较详细的介绍. 简 ...