我处于这种情况;当其中一个在css上定义为0时,需要计算图像的原始width
和heigth
值。我无法用jQuery更改CSS,需要像这样解决:
CSS:
img { width:0px; }
jQuery的:
var imgHeight = $('img').height();
alert(imgHeight);//which returning 0 ofcourse
我希望用更少的代码实现这一点,谢谢,
答案 0 :(得分:5)
试试这个:
var img = $("img")[0];
alert( img.naturalWidth + "x" + img.naturalHeight );
答案 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,然后测量尺寸。