为了账号安全,请及时绑定邮箱和手机立即绑定

Image()对象实例化获取图片宽高问题

Image()对象实例化获取图片宽高问题

PIPIONE 2018-10-19 14:46:45
关键代码如下。通过循环去创建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。


查看完整回答
反对 回复 2018-11-11
  • 1 回答
  • 0 关注
  • 433 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号