Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Прелоэдер. Помогите разобрать код. (https://javascript.ru/forum/misc/9235-preloehder-pomogite-razobrat-kod.html)

bayah 05.05.2010 20:24

Прелоэдер. Помогите разобрать код.
 
Собственно код:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>прелоадер</title>
<style type="text/css">
<!--
#loading {
position:absolute;
width:100%;
height:100%;
z-index:999999;
left: 0px;
top: 0px;
right: 0px;
bottom: 0px;
background-color: #FFFFFF;
display: block;
}
-->
</style>

<script type="text/javascript">
function hideLoading() {
document.getElementById('loading').style.display = 'none';
}
</script>

<script type="text/javascript">
if (window.addEventListener) {
window.addEventListener('load', hideLoading, false);
} else if (window.attachEvent) {
var r = window.attachEvent("onload", hideLoading);
} else {
hideLoading();
}
</script>

</head>
<body>

<div id="loading" > <!--этот контейнер закрывет всю страницу, пока та не загрузиться.-->
<div style="width:32px; height:32px; margin-left:49%; margin-top:20%;"><img src="loading.gif" width="32" height="32" alt="" /></div> <!--этот контейнер выравнивет картинку «идёт загрузка» (или, что у вас там будет) по центру экрана.-->
</div>

</body>
</html>

Собственно закрывает документ div ом с картинкой пока не загрузится весь контент.
Не могу понять каким образом происходит это все.
Что значит провека:
if (window.addEventListener) {
в частности.

bayah 05.05.2010 20:32

Блин, кажется я понял пока писал:
1. Начинает работать скрипт. Вешает обработчик на onload странички. Если браузер - IE, то использует для этого - attachEvent, иначе - addEventListener. Правда непонятно else - там сразу снимается прелоэд.
2. Как только загружается див, он отображается закрывая собой весь документ.
3. Как только загрузится вся страничка срабатывает onload и див делается невидимым.

Все таки непонятно как работает проверка if(window.addEventListener)


Часовой пояс GMT +3, время: 01:47.