Получить каждое изображение естественной высоты с помощью jQuery

Я должен прочитать естественную высоту каждого изображения, и я должен сделать вычисления. Однако у меня есть некоторые проблемы с чтением на естественную высоту.

$('div.imgkirp img').each(function(){
    console.log($(this).naturalHeight);
});

Он получает: (количество изображений) не определено в журнале консоли. Как я могу прочитать естественную высоту каждого из изображений?

3 ответа

Решение
var image = new Image();
image.src = $(this).attr("src");
alert('width: ' + image.naturalWidth + ' and height: ' + image.naturalHeight);

Этот подход не работает в IE 8 и ниже, потому что он не поддерживает свойства "naturalWidth" и "naturalHeight". Чтобы добиться того же, используйте этот код

var image = new Image();
image.src = $(this).attr("src");
image.onload = function() {
console.log('height: ' + this.height);
};

Попробуйте использовать собственность naturalHeight изображения, используя prop метод jQuery

$('div.imgkirp img').each(function(){

   console.log($(this).prop('naturalHeight'));
});

Базовый расчет для получения естественной ширины и естественной высоты.

var width = $("img", this).css('width', 'auto').width();
var height= $("img", this).css('height', 'auto').height();
Другие вопросы по тегам