Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.08.2013, 22:12
Новичок на форуме
Отправить личное сообщение для keslo Посмотреть профиль Найти все сообщения от keslo
 
Регистрация: 24.08.2010
Сообщений: 4

Прелоадер на JavaScript
Добрый день!
Необходимо реализовать прелоадер на страничке в виде картинки GIF. Т.е. как страница загрузилась, то картинка пропадает и, тадам!, появляется целевая страница.

Вопрос: как реализовать данное чудо? Посмотрел в инете варианты, но они прям замороченные какие-то

Только начал изучать JS, поэтому буду благодарен за подробные пояснения!
Ответить с цитированием
  #2 (permalink)  
Старый 22.08.2013, 22:58
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Все просто. Делаешь так чтобы изначально отображалась гифка. и был скрыт див-контейнер. Далее в body идет подключение стилей/скриптов (вот кстати не знаю, по спецификаци стили должны подключаться в <head>, но тогда они блокируют отображение страницы до их загрузки), и уже перед </body> скриптом (можно и стилями, в зависимости от твоей политики в отношении <noscript>) скрываешь гифку и отображаешь див.
Ответить с цитированием
  #3 (permalink)  
Старый 20.09.2013, 16:42
Новичок на форуме
Отправить личное сообщение для wolfeinstein Посмотреть профиль Найти все сообщения от wolfeinstein
 
Регистрация: 20.09.2013
Сообщений: 1

Пишу сразу после body код:

function createDiv() {
		var _body = document.getElementsByTagName('body') [0];
		var _div = document.createElement('div');
		_div.id = 'page-preloader'
		_div.innerHTML = '<span class="spinner"></span>'
		_body.appendChild(_div);
	}
	
	createDiv();

т.е. в самом начале скриптом создаю прелоадер, и при выключенном js он не сработает, что и требуется. Далее в недрах хитрой wordpress темы с помощью jquery по событию .ready прописываю скрыть прелоадер.

И все бы хорошо, но в момент загрузки происходит скачок: сначала появляется недозагруженная страничка, и только потом вылезает прелоадер. Что не так делаю? Подскажите пожалуйста.
Ответить с цитированием
  #4 (permalink)  
Старый 20.09.2013, 23:08
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Тупо вставить картинку в начало страницы
<!DOCTYPE>
<html>
<head>
</head>
<body>
<img id="preload" src="http://uploads.ru/i/F/h/l/FhlpJ.gif" style="z-index:1000;display:none;opacity:0.8; position:fixed;width:100%;height:100%">
<script>
(function () {var elem = document.getElementById('preload');
 elem.style.display='block';
  window.onload = function () {elem.style.display='none';}
}());
</script>
<!-- Основной контент -->
<br />
<br />
<iframe src="http://russki.istockphoto.com/search/text/DIY+Картина+Пол+Молодая%20Пара/filetype/photos/editorial/0/findSimilar/true#ace2898" width=100%></iframe>
</body>
</html>
</script>
Ответить с цитированием
  #5 (permalink)  
Старый 21.09.2013, 13:24
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

1.) Скрывает контент с помощью стилей (display: none);
2.) При загрузки документа, удаляем *gif анимацию и показываем контент.

<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<style type="text/css">
#loading {
   bottom: 0%;
   left: 0%;
   margin: auto;
   position: fixed;
   right: 0%;
   top: 0%;
   z-index: 2;
}
body > div#content {
   display: none;
}
</style>
</head>

<body>

<img alt="" id="loading" src="loading.gif" />

<div id="content">
   Content
</div>

<script type="text/javascript">
window.onload = function() {
   document.body.removeChild(document.getElementById('loading'));
   document.getElementById('content').style.display = 'block';
}
</script>

</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 21.09.2013, 16:47
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Неправильно. В стилях скрываем прелоадер. Скриптом его отображаем и скрываем контент. По окончанию загрузки удаляем прелоадер и отображаем контент.
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Книга: JavaScript. Сильные стороны Magneto Учебные материалы 16 21.04.2013 15:28
Интерпретатор Java на JS kobezzza Оффтопик 24 11.10.2012 18:32
Первый Moscow JavaScript Meetup korenyushkin Общие вопросы Javascript 0 26.07.2011 15:23
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34