我需要一个特定源图像的原始宽度和高度。 我现在的方法是:
img.tag = "<img style='display:none;' src='" + img.src + "' />";
img.Owidth = 0;
img.Oheight = 0;
$(img.tag).load(function() {
img.Owidth = $(this).width();
img.Oheight = $(this).height();
}).appendTo(img.parent());
与Owidth
和Oheight
被加载的图像的原始尺寸。 我不知道是否有更好的方法来做到这一点因为:
- 图像可以或者已经被加载,但在不同的尺寸比原来的大小显示。
- 图像尚未加载在所有
跨浏览器:
的jsfiddle演示
$("<img/>").load(function(){
var width = this.width,
height = this.height;
alert( 'W='+ width +' H='+ height);
}).attr("src", "image.jpg");
HTMLImageElement性能/ HTML5兼容的浏览器
如果你想调查有关的所有HTMLImageElement 属性 : https://developer.mozilla.org/en/docs/Web/API/HTMLImageElement
很多这些属性可已经在现代的, 兼容HTML5的浏览器 ,并访问使用jQuery的.prop()
梅托德
的jsfiddle演示
var $img = $("#myImage");
console.log(
$img.prop("naturalWidth") +'\n'+ // Width (Natural)
$img.prop("naturalHeight") +'\n'+ // Height (Natural)
$img.prop("width") +'\n'+ // Width (Rendered)
$img.prop("height") +'\n'+ // Height (Rendered)
$img.prop("x") +'\n'+ // X offset
$img.prop("y") // Y offset ...
);
对于Chrome和Firefox(希望IE很快),可以使用...
var width = $('img').prop('naturalWidth');
var height = $('img').prop('naturalHeight');