1

我的情况是;当其中一个在 css 上定义为 0 时,需要计算图像的原始值width和值。heigth我不能用jQuery改变CSS,需要这样解决:

这是示例链接。

CSS:

img { width:0px; }​

jQuery:

var imgHeight = $('img').height();
alert(imgHeight);//which returning 0 ofcourse

我希望这可以用更少的代码实现,谢谢,

4

3 回答 3

5

尝试这个:

var img = $("img")[0];
alert( img.naturalWidth + "x" + img.naturalHeight );

http://jsfiddle.net/mjaA3/50/

于 2012-08-01T18:38:12.460 回答
0
var img = $('img'),
    imgHeight = img.css("width","auto").height();
img.css("width","0");
alert(imgHeight);

是一个小提琴。我们所做的只是暂时将高度设置为它的自动值(即图像的 100% 宽度),获取高度,然后将图像重置为width:0;.

编辑:由于您不能直接操作 CSS,您可以更改类:

var img = $('img'),
    imgHeight = img.addClass("auto").height();
img.removeClass("auto");
alert(imgHeight);​

和CSS:

img {width:0;}
img.auto {width:auto;}​
于 2012-08-01T18:30:58.243 回答
0

您可以将该元素克隆到一个新的隐藏 DOM 节点(我假设您想在此处隐藏它)。然后删除 CSS,然后测量尺寸。

于 2012-08-01T18:31:25.987 回答