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 常用操作方法
Jan 28 Javascript
jquery autocomplete自动完成插件的的使用方法
Aug 07 Javascript
SeaJS入门教程系列之完整示例(三)
Mar 03 Javascript
Struts2+jquery.form.js实现图片与文件上传的方法
May 05 Javascript
简单实现js放大镜效果
Jul 24 Javascript
weex里Vuex state使用storage持久化详解
Sep 09 Javascript
JavaScript实现换肤功能
Sep 15 Javascript
jquery自定义显示消息数量
Dec 19 jQuery
完美解决mui框架off-canvas侧滑超出部分隐藏无法滚动的问题
Jan 25 Javascript
javascript中toFixed()四舍五入使用方法详解
Sep 28 Javascript
Vue 解决路由过渡动画抖动问题(实例详解)
Jan 05 Javascript
vue中移动端调取本地的复制的文本方式
Jul 18 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代码
2007/03/08 PHP
PHP ob缓存以及ob函数原理实例解析
2020/11/13 PHP
Jquery 滑入滑出效果实现代码
2010/03/27 Javascript
获取dom元素那些讨厌的位置封装代码
2010/06/23 Javascript
javascript string字符串优化问题
2011/07/31 Javascript
javascript实现日历控件(年月日关闭按钮)
2012/12/12 Javascript
兼容主流浏览器的JS复制内容到剪贴板
2014/12/12 Javascript
简介JavaScript中Math.cos()余弦方法的使用
2015/06/15 Javascript
Bootstrap布局组件教程之Bootstrap下拉菜单
2016/06/12 Javascript
基于jQuery的ajax方法封装
2016/07/14 Javascript
AngularJs上传前预览图片的实例代码
2017/01/20 Javascript
JS使用正则表达式验证身份证号码
2017/06/23 Javascript
nodejs实现截取上传视频中一帧作为预览图片
2017/12/10 NodeJs
vue实现图片滚动的示例代码(类似走马灯效果)
2018/03/03 Javascript
使用vue-router完成简单导航功能【推荐】
2018/06/28 Javascript
微信小程序支付PHP代码
2018/08/23 Javascript
vue router的基本使用和配置教程
2018/11/05 Javascript
js实现的在本地预览图片功能示例
2019/11/09 Javascript
vue接口请求加密实例
2020/08/11 Javascript
[42:52]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python算法学习之计数排序实例
2013/12/18 Python
python使用Queue在多个子进程间交换数据的方法
2015/04/18 Python
python使用fileinput模块实现逐行读取文件的方法
2015/04/29 Python
python实现批量改文件名称的方法
2015/05/25 Python
Python写入数据到MP3文件中的方法
2015/07/10 Python
python使用adbapi实现MySQL数据库的异步存储
2019/03/19 Python
Python3.6 + TensorFlow 安装配置图文教程(Windows 64 bit)
2020/02/24 Python
TensorFlow实现批量归一化操作的示例
2020/04/22 Python
python读取excel数据并且画图的实现示例
2021/02/08 Python
html5教程实现Photoshop渐变色效果
2013/12/04 HTML / CSS
银行实习自我鉴定
2013/10/12 职场文书
上班早退检讨书
2014/01/09 职场文书
讲文明树新风演讲稿
2014/05/12 职场文书
化学专业毕业生求职信
2014/07/28 职场文书
天那边观后感
2015/06/09 职场文书
详解Vue中$props、$attrs和$listeners的使用方法
2022/02/18 Vue.js