Блокируйте экран всплывающим окном, пока страница времени не загрузится полностью - PullRequest
5 голосов
/ 15 декабря 2009

Моя страница загружается различными элементами управления и изображениями меню. Я хочу показать всплывающее окно с индикатором выполнения на нем. Пользователь не должен иметь доступ к исходной странице в веб-браузере, когда отображается это всплывающее окно.

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

Ответы [ 3 ]

9 голосов
/ 15 декабря 2009

Самый простой способ сделать это с наложением - абсолютно позиционированный <div>, который покрывает всю страницу и имеет высокий z-index. Как только ваша страница закончила загрузку (то есть событие loaded срабатывает), вы можете удалить <div>.

Грубый пример для стилизации:

<html>
<head>
<style type="text/css">
#loading-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: #000; opacity: 0.7; }
#loading-message { position: absolute; width: 400px; height: 100px; line-height: 100px; background-color: #fff; text-align: center; font-size: 1.2em; left: 50%; top: 50%; margin-left: -200px; margin-top: -50px; }
</style>
</head>
<body>
<div id="loading-overlay"></div>
<div id="loading-message">Loading page, please wait...</div>
<!-- rest of page -->
<p>The rest of the page goes here...</p>
</body>
</html>

Имейте в виду, что у элементов управления может быть свое собственное «загруженное» событие (например, теги <img>), которое может сработать после того, как страница полностью завершится. Чтобы быть уверенным, вам придется экспериментировать.

2 голосов
/ 15 декабря 2009

Это пользовательская программа, которую я использовал в одном из своих пользовательских облачных приложений: Экран предварительной загрузки NGEN

Просмотр исходного кода для действия body.onload ...

Не стесняйтесь использовать его на досуге ...

1 голос
/ 15 декабря 2009

У вас может быть div, который покрывает весь экран, а в обработчике window.load скрыть этот элемент, но я согласен с комментарием выше. Не делайте этого со своими пользователями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...