Jump to content
  • 0

Отображать сайт (или картинки) только после полной загрузки


SCHNITZER
 Share

Question

Как сделать, что бы сайт отображался после полной его загрузки?

Все пересмотренные мной варианты либо основаны на задании, скажем, 2 сек, а потом отображают контент, не важно, загрузился он, или нет.

Или предлагается спрятать/распрятать по ходу чтения кода, а изображения продолжают подгружаться.

Или как сделать, что бы картинки грузились не так неприятно поступательно?

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Body - display:none;

Далее скрипт (основу загрузки скрипта брал отсюда http://webo.in/articles/habrahabr/05-delayed-loading/)

 <script type="text/javascript">


// Dean Edwards/Matthias Miller/John Resig

function init() {
// выходим, если функция уже выполнялась
if (arguments.callee.done) return;

// устанавливаем флаг, чтобы функция не исполнялась дважды
arguments.callee.done = true;

$('.main').show();
};

/* для Mozilla/Firefox/Opera 9 */
if (document.addEventListener) {
document.addEventListener("DOMContentLoaded", init, false);
}

/* для Internet Explorer */
/*@cc_on@*/
/*@if (@_win32)
document.write("<script id=\"__ie_onload\" defer=\"defer\" src=\"java script:void(0)\"><\/script>");
var script = document.getElementById("__ie_onload");
script.onreadystatechange = function () {
if (this.readyState == "complete") {
init(); $('.main').show();
}
};
/*@end@*/

/* для Safari */
if (/WebKit/i.test(navigator.userAgent)) { // условие для Safari
var _timer = setInterval(function () {
if (/loaded|complete/.test(document.readyState)) {
clearInterval(_timer);
init(); // вызываем обработчик для onload
}
}, 10);
}

/* для остальных браузеров */
window.onload = init;
</script>

Edited by SCHNITZER
Link to comment
Share on other sites

  • 0

Вам надо убрать весь код кроме части с window.onload. Тогда страница отобразится только после полной загрузки документа (включая картинки).

<script type="text/javascript">


// Dean Edwards/Matthias Miller/John Resig

function init() {
// выходим, если функция уже выполнялась
if (arguments.callee.done) return;

// устанавливаем флаг, чтобы функция не исполнялась дважды
arguments.callee.done = true;

$('.main').show();
};

window.onload = init;
</script>

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy