Вам необходимо понять разницу между $ (document) .ready () и обычным событием загрузки (с этим обычно работает $ (window) .load ()).
Событие «готов к документу» происходит, когда весь документ готов к взаимодействию JavaScript - загружен весь HTML и JavaScript. Скорее всего, не все изображения загружены, загружен и применен ли CSS, несколько неясно (браузеры делают это немного по-другому).
По этим причинам делать что-либо, требующее вычисления макета / размера из $ (document) .ready (), не очень хорошая идея. В этом случае вы попытаетесь прочитать размер документа до загрузки всех изображений, поэтому вы получите такой же размер, как и прежде, чем браузер узнает, какой будет размер, когда он узнает размер всех изображений.
Кажется, что в Opera это работает нормально, если я проверяю, что это сделано при загрузке, а не document.ready.
(Другая проблема заключается в том, что Opera не загружает изображения внутри дисплея: нет содержимого - пока вы фактически не измените отображение так, чтобы изображения были необходимы. Это повышает производительность загрузки, но иногда означает, что пользователь должен ждать загрузки изображений, когда дополнительный контент показано на рисунке.)