我遇到的Jcrop做剪裁无法显示的问题 是在IE8下发生的(在 firfox he chrome 中是显示正常的)
解决办法 是在一个图片加载完成后在 初始化 Jcrop;
1.预加载图片的方法
var App=(function(){ preLoadImages:function(images,callback){ var newimages=[], loadedimages=0; var images=(typeof images!="object")? [images] : images; function imageloadpost(){ loadedimages++; if (loadedimages==images.length){ callback(newimages); } } for (var i=0; i<images.length; i++){ newimages[i]=new Image(); newimages[i].src=images[i]; newimages[i].onload=function(){ imageloadpost(); }; newimages[i].onerror=function(){ imageloadpost(); }; } }});
在图片加载后初始化 Jcrop
App.preLoadImages([url],function(){ $jscopImg.Jcrop({ aspectRatio:1,//宽高比,为1则选框为正方形 bgFade:true, allowSelect:false, cornerHandles:false, sideHandles:false, allowResize:true, bgOpacity:0.5,//图片透明度 setSelect: [0,0,179,179],//x,y,x2,y2 onChange: showCoords, onSelect: showCoords, minSize:[60,60],//选框最小尺寸 maxSize:[w,h]//选框最大尺寸 },function(){ jcrop_api = this; }); //do something });