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 相关文章推荐
javascipt基础内容--需要注意的细节
Apr 10 Javascript
利用js的Node遍历找到repeater的一个字段实例介绍
Apr 25 Javascript
jQuery插件实现带圆点的焦点图片轮播切换
Jan 18 Javascript
JavaScript隐式类型转换
Mar 15 Javascript
基于javascript实现数字英文验证码
Jan 25 Javascript
ReactJS实现表单的单选多选和反选的示例
Oct 13 Javascript
基于JavaScript中标识符的命名规则介绍
Jan 06 Javascript
解决layui的table插件无法多层级获取json数据的问题
Sep 19 Javascript
JS实现密码框效果
Sep 10 Javascript
微信小程序使用前置摄像头拍照
Oct 22 Javascript
JavaScript实现复选框全选功能
Apr 11 Javascript
JS前端监控采集用户行为的N种姿势
Jul 23 Javascript
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异常处理Exception类
2015/12/11 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
WordPress 照片lightbox效果的运用几点
2009/06/22 Javascript
javascript 进阶篇3 Ajax 、JSON、 Prototype介绍
2012/03/14 Javascript
jquery实现盒子下拉效果示例代码
2013/09/12 Javascript
jQuery 获取和设置select下拉框的值实现代码
2013/11/08 Javascript
一个jquery实现的不错的多行文字图片滚动效果
2014/09/28 Javascript
Javascript闭包与函数柯里化浅析
2016/06/22 Javascript
第一次接触神奇的Bootstrap
2016/10/14 Javascript
AngularJs 利用百度地图API 定位当前位置 获取地址信息
2017/01/18 Javascript
详解Vue中添加过渡效果
2017/03/20 Javascript
简单谈谈vue的过渡动画(推荐)
2017/10/11 Javascript
angular6.0开发教程之如何安装angular6.0框架
2018/06/29 Javascript
vue.js实现的绑定class操作示例
2018/07/06 Javascript
Cocos2d实现刮刮卡效果
2018/12/20 Javascript
10个最受欢迎的 JavaScript框架(推荐)
2019/04/24 Javascript
JQuery使用属性addClass、removeClass和toggleClass实现增加和删除类操作示例
2019/11/18 jQuery
利用Python演示数型数据结构的教程
2015/04/03 Python
Python类属性的延迟计算
2016/10/22 Python
Python解惑之True和False详解
2017/04/24 Python
利用Python批量提取Win10锁屏壁纸实战教程
2018/03/27 Python
删除python pandas.DataFrame 的多重index实例
2018/06/08 Python
python3 线性回归验证方法
2019/07/09 Python
python lambda表达式(匿名函数)写法解析
2019/09/16 Python
vscode 配置 python3开发环境的方法
2019/09/19 Python
python批量将excel内容进行翻译写入功能
2019/10/10 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
2020/04/22 Python
python中tab键是什么意思
2020/06/18 Python
Mio Skincare英国官网:身体紧致及孕期身体护理
2018/08/19 全球购物
澳大利亚领先的女帽及配饰公司:Morgan&Taylor
2019/12/01 全球购物
《北大荒的秋天》教学反思
2014/04/14 职场文书
兴趣小组活动总结
2014/05/05 职场文书
考试没考好检讨书(精选篇)
2014/11/16 职场文书
学术会议通知
2015/04/15 职场文书
Spring Cloud 中@FeignClient注解中的contextId属性详解
2021/09/25 Java/Android
vscode远程免密登入Linux服务器的配置方法
2022/06/28 Servers