4

我正在获取图像的原始尺寸。有 css 应用于图像max-width:473px;,高度由浏览器自动调整。但是在内部图像load event中,我得到了原始的、未缩放的尺寸。

所以基本上原始图像大小是506x337,在 css 规则图像之后变成473x315. 我如何获得315px内部高度load event

更新

有用于测试的片段:http: //jsfiddle.net/CXNan/

4

3 回答 3

1

正如我在评论@问题中发布的那样,这将为您提供元素的计算高度。

window.getComputedStyle(document.getElementById("idOfYourImage"), null).getPropertyValue("height")

正如你们已经注意到的那样,它不是跨浏览器(也不是 IE 或旧的东西)。


更新

我已经为 IE 找到了这个 getComputedStyle,但还不能测试它。可能没问题,因为正如http://ie.microsoft.com/testdrive/HTML5/getComputedStyle/所说,旧的 IE API 被调用currentStyle,这个“getComputedStyle for IE”使用。

currentStyle 的唯一问题是,如果可能,在返回原始值getComputedStyle的同时总是返回一个像素值(因此css 将返回 50%,而不是父级的 50% 的像素大小)。currentStylewidth:50%

于 2013-05-06T19:45:22.463 回答
1

你也可以使用

this.offsetHeight

小提琴。它包含只读像素大小,请参阅参考资料。它在 MSIE 中受支持,并且应该是跨浏览器可靠的。

于 2013-05-06T20:06:28.110 回答
0

将最大宽度除以纵横比,您将获得缩放高度。请注意,如果图像小于最大宽度,则不会进行缩放。像这样的东西:

var height = img.width > 473 ? 473 / (img.width/img.height) : img.height;
于 2013-05-06T19:07:04.540 回答