Все, что делается с помощью jQuery, обычно будет ждать document.ready, что слишком поздно, ИМХО.
Поставьте div сверху, например:
<div id="cover"></div>
установить несколько стилей:
#cover {position: fixed; height: 100%; width: 100%; top:0; left: 0; background: #000; z-index:9999;}
и скрыть его с помощью JS, когда все элементы загружены:
$(window).on('load', function() {
$("#cover").hide();
});
Или, если по какой-то причине ваш сценарий использует еще больше времени, чем элементы DOM для загрузки, установитеинтервал, чтобы проверить тип какой-либо функции, которая загружает самую медленную, и снять крышку, когда все функции определены!
$(window).on('load', function() {
$("#cover").fadeOut(200);
});
//stackoverflow does not fire the window onload properly, substituted with fake load
function newW()
{
$(window).load();
}
setTimeout(newW, 1000);
#cover {position: fixed; height: 100%; width: 100%; top:0; left: 0; background: #000; z-index:9999;
font-size: 60px; text-align: center; padding-top: 200px; color: #fff;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul>
<li>This</li>
<li>is</li>
<li>a</li>
<li>simple</li>
<li>test</li>
<li>of</li>
<li>a</li>
<li>cover</li>
</ul>
<div id="cover">LOADING</div>