Jestem w tej sytuacji; Musisz obliczyć oryginał obrazu width i wartości heigth, gdy jeden z nich zdefiniował 0 na CSS. Nie mogę zmienić CSS z jQuery, musisz rozwiązać tak:

Oto przykład link.

CSS:

img { width:0px; }​

JQuery:

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

Mam nadzieję, że jest to możliwe przy mniejszym kodzie, dzięki,

1
Barlas Apaydin 1 sierpień 2012, 22:27

3 odpowiedzi

Najlepsza odpowiedź

Spróbuj tego:

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

http://jsfiddle.net/mjaa3/50/

5
Esailija 1 sierpień 2012, 18:38

Możesz sklonować element nowego ukrytego węzła (zakładam, że chcesz go ukryć). Następnie wyjmij CSS, a następnie zmierzyć wymiary.

0
Mike Brant 1 sierpień 2012, 18:31
var img = $('img'),
    imgHeight = img.css("width","auto").height();
img.css("width","0");
alert(imgHeight);

Tutaj jest skrzypcem. Wszystko, co robimy, jest tymczasowo ustawić wysokość do automatycznej wartości (która jest 100% szerokością obrazu), chwyć wysokość i zresetuj obraz do width:0;.

Edytuj: Ponieważ nie można bezpośrednio manipulować CSS, możesz zmienić klasę:

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

Oraz CSS:

img {width:0;}
img.auto {width:auto;}​
0
Purag 1 sierpień 2012, 18:53