1

我有一个带有一些图像的响应式布局。图像已max-width:100%设置。并且不能在 CSS 或 HTMLheight属性中预设高度,否则图像会随着响应式布局变小而扭曲。它必须是height: auto;为了正确扩展。

是否可以在 jQuery 中计算图像的高度?.height().css('height')依赖于要设置的 css 或 height 属性,就像我说的那样,当响应式设计改变大小时,我无法在不扭曲图像的情况下设置这些属性。

4

3 回答 3

3

我的问题最终是这样.height().css('height')返回 0,因为调用该代码时图像尚未加载。

为了获得高度,我运行了以下命令:

$(document).ready(function(){
  $('img.whatever').load(function(){
    console.log($(this).height()); // calculates height correctly after image is loaded.
  });
});
于 2012-09-04T04:03:11.943 回答
1

您可以使用 outerHeight()

http://api.jquery.com/outerHeight/

于 2012-09-04T03:39:09.490 回答
0

确定图像跨浏览器的原始大小中所述?

您有 2 个选项:

选项1:

去掉width和height属性,读取offsetWidth和offsetHeight

选项 2:

创建一个 JavaScript 图像对象,设置 src,并读取宽度和高度(您甚至不必将其添加到页面即可执行此操作)。

function getImgSize(imgSrc) {
    var newImg = new Image();

    newImg.onload = function() {
    var height = newImg.height;
    var width = newImg.width;
    alert ('The image size is '+width+'*'+height);
    }

    newImg.src = imgSrc; // this must be done AFTER setting onload

}

我相信该解决方案对您有用。

如果您只是更改图像的高度或宽度,则不应扭曲纵横比。

于 2012-09-04T06:09:03.353 回答