我遇到的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
});