Когда я использую
$(document).ready(function() {
var bodyHeight = $("body").height();
console.log(bodyHeight);
});
Я добираюсь действительно ненормальное число для высоты тела. Я затем работаю
$("body").height();
в консоли и получают правильную высоту. Что-то кажется подозрительным о $ (документ) .load выполнение этого... Да мой CSS хорошо работает и все, так эта моя ошибка, хромис, или jQuery?
Вы хотите посмотреть на функцию $ (window) .load ()
, а не на $ (document) .ready ()
.
Событие $ (document) .ready ()
выполняется, когда HTML DOM загружена и готова, даже если вся графика еще не загружена. Событие $ (window) .load ()
выполняется позже, когда полная страница будет полностью загружена, включая все фреймы, объекты и изображения.
Вот отличная ссылка, описывающая разницу. http://4loc.wordpress.com/2009/04/28/documentready-vs-windowload/
Событие document.ready
срабатывает после загрузки DOM, но до полного рендеринга страницы. Если вы хотите получить правильную высоту, попробуйте использовать событие window.load
, которое срабатывает после загрузки всех изображений и объектов и рендеринга страницы:
$(window).load(function() {
var bodyHeight = $("body").height();
});