我无法获得某些图像的width
和height
,但是可以通过Image.width
和Image.height
获得其他图像。为什么有些可以,有些不能?
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){
......
一些HTML元素
<div class="sfc-pic-play-item" style="width: 100%; overflow: hidden;"><div class="sfc-pic-play-item-wrap"><div class="c-img c-img-s" style="background:none"><img src="http://a.jpg" class="sfc-pic-play-center"></div></div></div>
最佳答案
如评论中所述,您的条件必须在onload-handler内,否则可能/将在加载映像之前执行。
正如Jonas w所指出的那样,imgObj当时没有引用正确的对象也将存在问题。
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){
//...
}
}
});
如果仍然发生错误,我们需要查看您如何将其适应代码