关键代码如下。通过循环去创建image对象,但是循环获取图片宽高的时候有部分图片的宽高为0,并且是随机出现不同的图片宽高为0.求解。 var i = 0; var len = imgitem.length; for( i = 0; i < len ; i++){
imgSrc = imgitem[i].url;
imgObj = new Image();
imgObj.src = imgSrc;
imgObj.onload = function(){
console.log(imgObj.width);
imgObjW = imgObj.width;
imgObjH = imgObj.height;
};
/*限制最大height*/
if(imgObjH / imgObjW >= 1.5){
......
1 回答

神不在的星期二
TA贡献1963条经验 获得超6个赞
imgitem.forEach(function(item){ var img = new Image(); img.src = item.url; img.onload = function(){ var w = img.width, h = img.height; console.log(item, img, w, h); if(h/w >= 1.5){ //... } } });
在循环的时候需要重新定义img变量,否则会一直共享一个变量,因此在循环的时候会存在Image.src还没有来得及初始化的问题,自然获取不到width和height。
添加回答
举报
0/150
提交
取消