// JavaScript Document if ( typeof Object.create !== "function" ) {//如果Object.create不是函数方法 给Object.create创建函数方法 针对IE8及以下 Object.create = function( obj ) { function F() {}; F.prototype = obj; return new F(); }; }; (function( $, window, document, undefined ) { var iterations = 0; var imgIds = 0; var loadImg = { init:function(options,img,imgNum){ var imgObj = this; imgObj.options = $.extend({}, $.fn.imageLoadimg.options, options); imgObj.img = $(img); imgObj.imgNum = imgNum; iterations = 0; imgObj.loadImg_fun(); }, loadImg_fun:function(){ var base = this; var imgObj = this.img.get(0); function completeImg(img) { if (!img.complete) { return false; } if (typeof img.width !== "undefined" && img.width == 0) { return false; } return true; } function checkImage(){ iterations++; if (completeImg(imgObj)) { if(typeof base.options.afterLoad === "function") { base.options.afterLoad.apply(imgObj); }; if(base.options.isMiddle!=false){ var imgWnum = imgObj.width; var imgHnum = imgObj.height; var imgMar_left = 0; var imgMar_top = 0; if(base.options.isMiddle=='center-no'){ imgMar_left = (base.img.parent().width()-imgObj.width)/2; base.img.css({'margin-left':imgMar_left}); return; } if(base.options.isMiddle=='fullAll'){ imgWnum = base.img.parent().width(); imgHnum = imgWnum/imgObj.width*imgObj.height; if(imgHnumbase.img.parent().width()){ imgWnum = base.img.parent().width(); imgHnum = imgWnum/imgObj.width*imgHnum; }else{ imgWnum = imgObj.width; imgHnum = imgObj.height; }; if(imgWnum/imgObj.width*imgHnum>base.img.parent().height()){ imgHnum = base.img.parent().height(); imgWnum = imgHnum/imgObj.height*imgObj.width; }; imgMar_left = (base.img.parent().width()-imgWnum)/2; imgMar_top = (base.img.parent().height()-imgHnum)/2; base.img.css({'width':imgWnum,'height':imgHnum}); switch (base.options.isMiddle){ case 'justify': base.img.css({'margin-top':imgMar_top}); break; case 'center': base.img.css({'margin-left':imgMar_left}); break; case 'center-no': break; default: base.img.css({'margin-left':imgMar_left,'margin-top':imgMar_top}); break; //base.img.css({''}) } }; if(imgIds===base.imgNum-1){ if(typeof base.options.initLoad === "function") { base.options.initLoad.apply(base); }; }; if(imgIds<base.imgNum-1){ imgIds ++ ; }else{ imgIds = 0; }; } else if(iterations <= 400){ setTimeout(function(){checkImage()},100); } else { //loaderro(); //alert('图片不存在:'+imgObj.src); } }; if(imgObj!== 'undefined'){ checkImage(); }; } }; $.fn.imageLoadimg = function(options){ var imgNum = this.length; this.each(function(){ var imgFun = Object.create( loadImg );//Object.create IE8及以下没有该方法 需自定义创建 imgFun.init( options, this,imgNum); }); }; $.fn.imageLoadimg.options ={ afterLoad:false, initLoad:false, isMiddle:false }; })( jQuery, window, document ); /* isMiddle:是否对图片做对齐操作 默认:false 可选项: 'center': 左右居中 自适应 'justify': 垂直居中 自适应 true: 左右垂直居中 自适应 false: 不对图片进行任何操作 'no-center':图片居中 不执行自适应 'fullAll': 图片撑满 自适应 注:图片比容器小时会进行拉伸 */