在将图像放入DOM之前如何获得图像大小?
var imgLoad = $("<img />");
$(imgLoad).attr("src", ImageGallery.ImagesList[index] + "?" + new Date().getTime());
$(imgLoad).unbind("load");
$(imgLoad).bind("load", function () {
// Get image sizes
alert(imgLoad.width()); // RETURN 0
});
最佳答案
请改用imgLoad[0].width
和imgLoad[0].height
,或改用this
而不是imgLoad
:
var imgLoad = $("<img />");
imgLoad.attr("src", ImageGallery.ImagesList[index] + "?" + new Date().getTime());
imgLoad.unbind("load");
imgLoad.bind("load", function () {
// Get image sizes
alert(this.width);
});
之所以可行,是因为浏览器在下载图像时会填充该元素的
height
/width
属性。另一方面,jQuery会获取元素的实际可见尺寸-当未显示元素时,该尺寸始终为0。请注意,您不需要将
imgLoad
与$()
换行,因为它已经是jQuery对象。