jQuery计算来自服务器的img的实际高度/宽度值

时间:2012-08-01 18:27:16

标签: javascript jquery css image

我处于这种情况;当其中一个在css上定义为0时,需要计算图像的原始widthheigth值。我无法用jQuery更改CSS,需要像这样解决:

Here is example link.

CSS:

img { width:0px; }​

jQuery的:

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

我希望用更少的代码实现这一点,谢谢,

3 个答案:

答案 0 :(得分:5)

试试这个:

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

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

答案 1 :(得分:0)

var img = $('img'),
    imgHeight = img.css("width","auto").height();
img.css("width","0");
alert(imgHeight);

Here是一个小提琴。我们所做的只是暂时将高度设置为自动值(即图像的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;}​

答案 2 :(得分:0)

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