Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> предварительная загрузка 
:(
    Опции темы
6o6pbI
Дата 26.9.2007, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 26.9.2007

Репутация: нет
Всего: нет



Здравствуйте.
Нужна такая вещь,когда человек заходит на сайт должна появляться страничка

...подождите идет загрузка...

а когда нужная страница полностью загрузилась,то осуществляется переход на нее.

пример можно посмотреть на woweb и вообще много таких сайтов.
Научите пожалуйста!!
Заранее спасибо!!!
PM MAIL   Вверх
Aoli
Дата 26.9.2007, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 24.1.2007

Репутация: нет
Всего: 0



Внутри html кода пишется джава скрипт, на событие onload.
Примеры посмотри в коде страниц этих же сайтов.
PM WWW ICQ   Вверх
6o6pbI
  Дата 26.9.2007, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 26.9.2007

Репутация: нет
Всего: нет



в том то и дело что они прячут javascript в отдельном файле!!! :(
PM MAIL   Вверх
nornad
Дата 27.9.2007, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

Репутация: нет
Всего: 31



6o6pbI, а самому написать не судьба?
Или ты хочешь чтобы тебе просто код дали готовый?

Добавлено через 3 минуты и 12 секунд
Да и отдельный файлик скрипта посмотреть тоже за нефиг делать - сохрани страницу полностью или открой свойства страницы и глянь на скрипты.


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
6o6pbI
Дата 27.9.2007, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 26.9.2007

Репутация: нет
Всего: нет



Я бы с радостью написал сам,но я новичек в этом нелегком деле!!!
Нет,я не прошу готовый скрипт,я прошу объяснить мне как это работает.А ответ типа пользуйся функцией onLoad(); и все будет ок,для меня не нисут никакой информации в силу моего малого знания о javascript.
Про наличие этой функции я знаю,а как ей пользоваться нет,вот и прошу помощи.
PM MAIL   Вверх
dsCode
Дата 27.9.2007, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: 19
Всего: 26



Aoli
Цитата(Aoli @  26.9.2007,  22:40 Найти цитируемый пост)
на событие onload

а разве onLoad наступает не тогда, когда страница полностью загружена уже (включая картинки)? ;)

6o6pbI, примерно, суть в следующем:

1. страница разбивается на равные части (исходя из контента; контент скрыт в div'e) (допустим 10 частей)

2. после каждой части вставляется вызов функции js, которая "продвигает" индикатор загрузки (который находится в отдельном, абсолютно-спозиционированном div'e) на 10%.

3. После последней части функция скрывает div загрузки и показывает основной div с контентом.

Это сообщение отредактировал(а) dsCode - 27.9.2007, 10:48


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
InfMag
Дата 27.9.2007, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: 2
Всего: 4



Вот тебе пример smile все очень просто
Код

<html>
<head>
<title>page</title>
</head>
<body onload="pageloading.style.display='none';pageload.style.display='block';">
<div id='pageloading'>...LOADING...</div>
<div id='pageload' style="display:none">OK...</div>
</body>
</html>

PM   Вверх
6o6pbI
Дата 27.9.2007, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 26.9.2007

Репутация: нет
Всего: нет



Вот оно!!!
Спасибо за хорошие ответы!!
Но я уже разобрался почти. реализовал я так...
Код

<script>
var shag=8;
var url_text='Группа ТМ-1-05';
var url_text_style='style="color:#00000"';
var ok_log='Загрузка завершена'; 
var text_log='Загружаюсь...';
var log_color='#ffffff';
var log_win_color='white';
var border_log='#4D5764'; //цвет оконтовки
var bar_color='#4D5764'; //цвет полосы загрузки
var text_style='style="color:#005A89"'; // стиль для всего текста


var var_log=0;
document.write('<div id="log_bar"><table width="100%" height="100%"><tr><th align="center"><table cellspacing="0" style="border:solid 1px '+border_log+'" bgcolor="'+log_win_color+'"  align="center" width="333"><tr ><th bgcolor="'+border_log+'" colspan="3" '+url_text_style+' >'+url_text+'</th></tr><tr><th '+text_style+' colspan="3">'+text_log+'</th></tr><tr><td '+text_style+'><b>0%</b></td><td width="100%"><hr width="1" id="log_hr" align="left" size="10" noshade color="'+bar_color+'"></td><td '+text_style+'><b>100%</b></td></tr><tr><th colspan="3" id="procent" '+text_style+'>0%</th></tr></table></th></tr></table></div><div id="temp_loading" style="display:none">');

function vis_log()

    document.getElementById('log_bar').style.display='none';
    document.getElementById('temp_loading').style.display='block';
    clearTimeout(tim);}

function lo()

    var_log+=shag;
    if(var_log<=100)
{
    document.getElementById('log_hr').width=var_log+"%";
    document.getElementById('procent').innerHTML=var_log+" %" 

else

    document.getElementById('procent').innerHTML=ok_log;
    tim=setTimeout("vis_log();",0)
}
}
</script>




каждой картинке написал onload="lo();";
и все работает(почти!!!!)
Вот она проблемма!!! В опере не работает!!!!Почему???????
Не исчезает див загрузки!!!!к стати та же проблемма и с этим простым кодом
Код

<html>
<head>
<title>page</title>
</head>
<body onload="pageloading.style.display='none';pageload.style.display='block';">
<div id='pageloading'>...LOADING...</div>
<div id='pageload' style="display:none">OK...</div>
</body>
</html>

Подскажите кто знает пожалуйста.
PM MAIL   Вверх
dsCode
Дата 27.9.2007, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: 19
Всего: 26



InfMag
Цитата(InfMag @  27.9.2007,  11:00 Найти цитируемый пост)
все очень просто

еще раз повторю - onload для body наступит, когда документ загрузится полностью


6o6pbI, все должно сработать. document.getElementById('log_bar').style.display='none'; - у Вас определен элемент с id log_bar (это скрипт с woweb - у них-то, может и определен этот элемент, а Вы не забыли написать?)? Потмоу что функция vis_log() должна вызваться после отработки последней lo(...) - tim=setTimeout("vis_log();",0).

Это сообщение отредактировал(а) dsCode - 27.9.2007, 12:34


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
6o6pbI
Дата 27.9.2007, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 26.9.2007

Репутация: нет
Всего: нет



6o6pbI, все должно сработать. document.getElementById('log_bar').style.display='none'; - у Вас определен элемент с id log_bar (это скрипт с woweb - у них-то, может и определен этот элемент, а Вы не забыли написать?)? Потмоу что функция vis_log() должна вызваться после отработки последней lo(...) - tim=setTimeout("vis_log();",0).

Все правильно сделал.В других браузерах работает ведь!!!!А в опере нет.

У меня 12 картинок у каждой onload="lo();"
шаг=8

функция lo(); повторяется 12 раз,при этом var_log становится > 100 и запускается function vis_log();

Проблемма в том что в опере даже первый шаг не делается.

Вот ссылка где пытаюсь реализовать http://www.tm-1-05.jino-net.ru/
PM MAIL   Вверх
dsCode
Дата 27.9.2007, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

Репутация: 19
Всего: 26



6o6pbI, не знаю, сходу так не сказать. Что написано в описании к скрипту? Он поддерживает Оперу вообще? На самом деле, когда происходит document.write(...) в самом конце создается невидимый див, но вот закрывающего тега для него нет. Может из-за этого - хотя вряд ли, конечно. В общем, надо пошагово отлаживать и искать причину.

P.S.: вообще, пощелкайте по своим же ссылкам (форум, вход и т.д.) - переодически файрбаг говорит "lo() is not defined, tim is not defined.. и т.д.". Так что там ошибки есть - надо искать и фиксить.

Это сообщение отредактировал(а) dsCode - 27.9.2007, 16:05


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
SelenIT
Дата 27.9.2007, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



6o6pbI, просто не все браузеры делают из id-ов глобальные переменные. Если пользоваться стандартным методом document.getElementById, будет работать везде:
Код

<html>
<head>
<title>page</title>
</head>
<body onload="var d=document;d.getElementById('pageloading').style.display='none';d.getElementById('pageload').style.display='block';">
<div id='pageloading'>...LOADING...</div>
<div id='pageload' style="display:none">OK...</div>
</body>
</html>



--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
6o6pbI
Дата 27.9.2007, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 26.9.2007

Репутация: нет
Всего: нет



dsCode не поверишь!!!Реально из за незакрытого дива нничего не работало!!!!!!!!! smile 

У меня там все через getElementById.
Спасибо всем кто потратил на меня время!!! smile 
PM MAIL   Вверх
Astraller
Дата 29.9.2007, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 300
Регистрация: 1.8.2007
Где: $Украина[Кры м]->Феодосия

Репутация: 2
Всего: 5



Ужос.... решение елементарное и лежит на поверхности.
Код

window.onload=show;
function show (){
[создали и показали DIV]
time();
}

function time(){
if (document.body){
[скрыли див]
}else{
setTimeout("time();",1);
}
}



--------------------
A.S.T.R.A.L.L.E.R.: Artificial Synthetic Technician Responsible for Assassination, Logical Learning and Efficient Repair
PM MAIL WWW ICQ   Вверх
SelenIT
Дата 30.9.2007, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



Astraller, и чем это элементарнее, чем пример InfMagа выше? smile

К тому, же, не поздновато ли только создавать див-прелоудер в момент onload-а - т.е. тогда, когда по логике должна открыться основная страница?


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0546 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.