Вопрос по jquery, image, google-chrome, height – высота изображения с помощью jquery в Chrome

12

$('img').height() возвращается0 в Chrome, но возвращает фактическую высоту в IE и Firefox.

Каков реальный способ получить высоту изображения в хром?

В зависимости от ваших обстоятельств, используя $ ('#your_image»).на('нагрузка»... может быть уместным. Mr_Chimp
Делать вещи не на$(document).ready но на$(window).load, Работал для меня - fortwaynewebdevelopment.com/... jibiel
У тебя естьheight указано либоimg сам тег или в CSS? Traveling Tech Guy
Спасибо, Джибиэль, работает на меня! Просто и эффективно! Marcos Buarque
виден ли img, т. е. был отображен? Scott Evernden

Ваш Ответ

7   ответов
1

но эффективное исправление, которое я использовал, было использование языка бэкэнда, в моем случае php, чтобы получить высоту и установить его на изображение перед отправкой в браузер.

Это'уродливо, но просто и быстро

-1

заранее установить ширину и высоту с помощью CSS или HTML.

1

оваВы ищете:

// simple image preloader
function getHeight(el,fn) {
    var img = new Image();
    img.onload = function() { fn(img.height); };
    img.src = el.attr("src");
}

$("img").each(function(){
    getHeight($(this),function(h){
        // what you need to do with the height value here
        alert(h);
    });
});
0

Вот'с одним Я написал для ответа наДругой вопрос.

1

что эта функция вызывается до завершения загрузки изображения. Можете ли вы попробовать задержать функцию, чтобы увидеть, так ли это на самом деле? Если это так, перед запуском функции вы можете обмануть, используя таймер.

Это немного сложнее определить, когда изображение было загружено.Посмотрите на этот скрипт для некоторых идей - может быть, это будет работать для вас.

@Frank, onload тела вызывается, когда DOM завершается, этоНе гарантируется, что ресурсы в DOM будут полностью загружены (включая изображения). JasonWyatt
Или запустите сценарий в событии onload тела вместо события готового документа. Это'Это не так точно, так как весь документ должен быть загружен, но вы можете быть уверены, что изображение загружено (при условии, что оно 's изображение в коде, а не какой-то загруженный AJAX). Frank DeRosa
9

если изображение еще не загружено полностью, jQuery победитне знаю, какие размеры еще. Попробуйте что-то вроде этого, чтобы убедиться, что вытолько пытаюсь получить к нему доступРазмеры после полной загрузки изображения:

var img = new Image();

$(img).load( function() {
    //-- you can determine the height before adding to the DOM
    alert("height: " + img.height);
    //-- or you can add it first...
    $('body').append(img);
    //-- and then check
    alert($('body img').height());
}).error( function() {
    //-- this will fire if the URL is invalid, or some other loading error occurs
    alert("DANGER!... DANGER!...");
});

$(img).attr('src', "http://sstatic.net/so/img/logo.png");
0

ямы обнаружили, что

$(this).height();

Возвращает 0 - однако, если вы просто используете старый добрый JS

this.height;

Я получаю правильную высоту изображения.

Похожие вопросы