我正在获取图像的原始尺寸。有 css 应用于图像max-width:473px;
,高度由浏览器自动调整。但是在内部图像load event
中,我得到了原始的、未缩放的尺寸。
所以基本上原始图像大小是506x337
,在 css 规则图像之后变成473x315
. 我如何获得315px
内部高度load event
?
更新
有用于测试的片段:http: //jsfiddle.net/CXNan/
我正在获取图像的原始尺寸。有 css 应用于图像max-width:473px;
,高度由浏览器自动调整。但是在内部图像load event
中,我得到了原始的、未缩放的尺寸。
所以基本上原始图像大小是506x337
,在 css 规则图像之后变成473x315
. 我如何获得315px
内部高度load event
?
更新
有用于测试的片段:http: //jsfiddle.net/CXNan/
正如我在评论@问题中发布的那样,这将为您提供元素的计算高度。
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% 的像素大小)。currentStyle
width:50%
将最大宽度除以纵横比,您将获得缩放高度。请注意,如果图像小于最大宽度,则不会进行缩放。像这样的东西:
var height = img.width > 473 ? 473 / (img.width/img.height) : img.height;