gpt4 book ai didi

javascript - for 循环创建 Image(),但获取宽度和高度失败

转载 作者:行者123 更新时间:2023-11-28 04:32:11 25 4
gpt4 key购买 nike

我无法获得某些图像的宽度高度,但我可以通过Image.width获取某些图像的一些图像。图片.高度。为什么有的可以,有的不能?

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){
//...
}
}
});

如果这仍然会引发一些错误,我们需要看看您是如何将其调整到您的代码中的

关于javascript - for 循环创建 Image(),但获取宽度和高度失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41679020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com