jQuery-получить общую высоту страницы

Я проверил этот и даже другие веб-сайты для этого вопроса, и я также заглянул в документацию jQuery, но, к сожалению, я не нашел решения, которое работало для меня, поэтому я открываю новый поток.

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

$(body).height(); определяет высоту 1085px, но правильная высота 1774px. На других страницах веб-сайта значения, конечно, разные, но jQuery никогда не получает правильную высоту.

Я пытался получить правильную высоту со следующим, и все они потерпели неудачу:
$('#site-body').height();, $('#site-body').outerHeight();, $('#site-body').outerHeight(true);,$(document).height();

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

С уважением, chwebo

3 ответа

  1. Вам нужно поместить его внутрь $(document).ready(function(){....});
    См. этот фрагмент:

    $(document).ready(function(){    
      
            $("#docH").text($(document).height());
       
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    
    <p>Document Height: <span id="docH"></span> px.</p>

  2. Я включил фрагмент функции $('body').height();в функцию прокрутки, и это хорошо работает.

    $(document).ready(function(){
       $(window).scroll(function(){
          var pageHeight = $('body').height();
       }
    }
    

    Я понятия не имею, почему это происходит, но если у кого-то есть та же проблема, попробуйте это.

  3. Из документации:

    Браузеры также предоставляют событие load для объекта window. При запуске этого события указывается, что все ресурсы на странице загружены, включая изображения. Это событие можно наблюдать в jQuery с помощью:

    $( window ).on( "load", handler ).
    

    В случаях, когда код полагается на загруженные ресурсы (например, если требуются измерения образа), код должен быть помещен в обработчик для события load.