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

#jquery #css

#jquery #css

Вопрос:

Я пытаюсь поместить div (вводный текст) в другой div (вводный контейнер). Для этого я использую css и jQuery.

 .intro-text {
width: 35%;
margin-left: auto;
margin-right: auto;
display: block;
}
  

В div (вводный текст) есть изображение, которое имеет адаптивную ширину / высоту. Он имеет ширину 35% от родительского контейнера (вводного контейнера).

Мне нужна высота вводного текста div, чтобы разместить его в контейнере. Он работает нормально, за исключением первой загрузки. Он возвращает 40 пикселей (высоту текста).

 $(document).ready(function(){

        backgroundResize();

        $(window).resize(function(){
            backgroundResize();
        });
    });

function backgroundResize(){
console.log("height:"   $(".intro-text").height());
}
  

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

 <div class="intro-container container">
    <div class="intro-text">
  <p><img src="intro.png"><br>
Address, Phone, .</p>
    </div>
</div>
  

Комментарии:

1. Вам нужно вызвать функцию при загрузке изображения, например $('.intro-text img').on('load', backgroundResize)

Ответ №1:

Событие ready происходит после загрузки HTML-документа, в то время как событие onload происходит позже, когда все содержимое (например, изображения) также загружено.

Вызовите функцию backgroundResize() при событии onload .

     $(document).ready(function(){

            $(window).resize(function(){
                backgroundResize();
            });

            $(window).load(function(){
                backgroundResize();
            });

        });