Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Блокировка страницы


Автор: DeamonShan 23.9.2010, 14:49
Здрасти.

Я вот никак не могу понять (разбирал много готовых кодов), как страница блокируется када модальное окно открывается в виде слоя.

Кпримеру, если кто сидит вконтактах, если открыть видеролик, то на новом слое открывается плеер на этой же странице и фон (сама страница) становится неактивной, то есть там все видно, но выделить, нажатьна ссылку не получится.

Как это делается? В страницу включен jQuery.

А задача: при аякс запросе $.post() пока не выполнился запрос, блокировать страницу и показать картинку в центре окна, типа, "идет загрузка..."

Как такую задачу решить?

Автор: ksnk 23.9.2010, 14:59
Цитата(DeamonShan @  23.9.2010,  14:49 Найти цитируемый пост)
Как такую задачу решить?

Запустить в Хроме и посмотреть внимательно на "серую муть", которая появляется поверх всех остальных элементов.
Просто поверх всех элементов выводится прозрачный или полупрозрачный див, а поверх него уже рисуется нужный диалог.

Автор: DeamonShan 23.9.2010, 15:29
Цитата(ksnk @  23.9.2010,  14:59 Найти цитируемый пост)
Просто поверх всех элементов выводится прозрачный или полупрозрачный див, а поверх него уже рисуется нужный диалог. 


Это понятно, а как блокировать саму страницу, чтобы вообще ничего активного не было?

А про "серую муть" я не понял)))

Автор: ksnk 23.9.2010, 15:48
Цитата(DeamonShan @  23.9.2010,  15:29 Найти цитируемый пост)
Это понятно, а как блокировать саму страницу, чтобы вообще ничего активного не было?

А про "серую муть" я не понял))) 

Обычно такой слой называется оверлей. пример можно посмотреть http://jqueryui.com/demos/dialog/#modal там, кстати, и стырить полосатый заливочный фончик - не грех ;) Если делать оверлей серым и полупрозрачным - получится "серая муть". Так как все события , которые не приходят непосредственно диалогу доставляются до этого оверлея, то ниже его никакие события уже не будут доходить - полный эффект блокировки странички. Вот только табуляцию нужно бы тоже блокировать, от особенно хитрых юзеров.

Автор: DeamonShan 23.9.2010, 15:58
ksnk, блин, так слой этот на все окно растягивается значт!? 
Че я сам не додумался до этого)))

Спасибо...плюс!

Автор: DeamonShan 24.9.2010, 13:07
Вопрос такой. Как лучше? оверлей динамически вызывать  (overley.appentto("body")) и уничтожать (overley.remove()) или же лучше подгружать невидимый слой со страницей?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)