在将图像放入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].widthimgLoad[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对象。

09-17 08:00