Эта проблема jQuery, связанная с тем, что Webkit не может определить высоту элемента после перезагрузки или обновления, существует уже некоторое время.Эти возможные решения стоит попробовать:
Метод 1
Попробуйте использовать jQuery(window).load
вместо jQuery(document).ready
, например:
jQuery.noConflict();
jQuery(window).load(function() { // <--
var myheight = jQuery(".mydiv").height();
jQuery(".this-div-uses-calculated-height-as-padding").css( "padding-top", myheight );
});
Источник
Метод 2 (поддерживается более чем на 90% + браузеров, но не IE8)
Если вышеуказанный подход вызывает некоторые проблемы между Webkitи другие браузеры, рассмотрите возможность использования этого:
document.addEventListener("DOMContentLoaded", function(event) {
// your script
});
Источник
Метод 3 (не изящный, но у него самый высокий шансдля правильной работы во всех браузерах)
И если даже это не работает, вы можете попробовать менее чистый способ, сначала обнаружив браузер, а затем применив скрипт в зависимости от того, является ли он веб-набором или нет:
jQuery.noConflict();
isWebkit = /(safari|chrome)/.test(navigator.userAgent.toLowerCase());
if (isWebkit){
jQuery(window).load(function() { // <--
// your script
});
}
else{
jQuery(document).ready(function() { // <--
// your script
});
}
Другим подходом может быть включение любых файлов CSS до включения файла jQuery.