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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вызов функции перед началом загрузки страницы 
V
    Опции темы
Zamuta
Дата 15.6.2008, 01:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Может я изначально не тем путём иду, поправьте если что.
Для того чтобы юзер не нажимал куда попало до окончания загрузки страницы использую фильтр для блокировки окна.

Код

function showBox(){
    $('overlay').show();
    center('box');
    return false;
}

function hideBox(){
    $('box').hide();
    $('overlay').hide();
    return false;
}

function center(element){
    try{
        element = $(element);
    }catch(e){
        return;
    }

    var my_width  = 0;
    var my_height = 0;

    if ( typeof( window.innerWidth ) == 'number' ){
        my_width  = window.innerWidth;
        my_height = window.innerHeight;
    }else if ( document.documentElement && 
        ( document.documentElement.clientWidth ||
        document.documentElement.clientHeight ) ){
        my_width  = document.documentElement.clientWidth;
        my_height = document.documentElement.clientHeight;
    }
    else if ( document.body && 
        ( document.body.clientWidth || document.body.clientHeight ) ){
        my_width  = document.body.clientWidth;
        my_height = document.body.clientHeight;
    }

    element.style.position = 'absolute';
    element.style.zIndex   = 99;

    var scrollY = 0;

    if ( document.documentElement && document.documentElement.scrollTop ){
        scrollY = document.documentElement.scrollTop;
    }else if ( document.body && document.body.scrollTop ){
        scrollY = document.body.scrollTop;
    }else if ( window.pageYOffset ){
        scrollY = window.pageYOffset;
    }else if ( window.scrollY ){
        scrollY = window.scrollY;
    }

    var elementDimensions = Element.getDimensions(element);

    var setX = ( my_width  - elementDimensions.width  ) / 2;
    var setY = ( my_height - elementDimensions.height ) / 2 + scrollY;

    setX = ( setX < 0 ) ? 0 : setX;
    setY = ( setY < 0 ) ? 0 : setY;

    element.style.left = setX + "px";
    element.style.top  = setY + "px";

    element.style.display  = 'block';
}


Код

#overlay { 
    background-image: url(../resources/overlay.png);
    position: absolute;
    top: 0px;
    left: 0px;
    z-index: 90;
    width: 100%;
    height: 100%;
}

* html #overlay {
    background-color: #333;
    background-color: transparent;
    background-image: url(blank.gif);
    filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../resources/overlay.png", sizingMethod="scale");
}

#box {
    width:300px;
    background:#2d2d2d;
    padding:10px;
    border:2px solid #eee;
    font-family: "Verdana";
    color: white;
    font-size: 18px;
}


Код

<div id="overlay" style="display:none"></div>
    <div id="box" style="display:none">
        <img id="close" src="images/close.gif" onclick="hideBox()" alt="Close" 
             title="закрыть" />
    </div>


При получения события с линка или кнопки всё нормально работает (в FF). Как вызвать showBox() при начале загрузки страницы, т.е. когда ещё не всё загружено и нужно подождать конца загрузки? hideBox() собираюсь вызывать при onLoad(), когда всё отрисовалось. На странице много форм и управляющих элементов, которые шлют данные на сервер, поэтому не могу на каждый повесить onSubmit() чтобы вызвать showBox().

Спасибо.


--------------------
Thank you opensource.
PM MAIL ICQ   Вверх
krundetz
Дата 15.6.2008, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

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



Может стоит страницу загружать с изначально заблокироваными элементаим управления а уже по onload() их все разблокировать?


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
Zamuta
Дата 15.6.2008, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

Может стоит страницу загружать с изначально заблокироваными элементаим управления


Буду очень благодарен если подскажете как это сделать. Как вызвать showBox() при загрузке?


--------------------
Thank you opensource.
PM MAIL ICQ   Вверх
Sannis
Дата 15.6.2008, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 14.8.2007
Где: Москва

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



Ну так не надо вызывать функцию, нужно страницу изначально выводить с этим слоем, прописанным в HTML.


--------------------
Я Критик Джим, раньше писал моды для IPB 1.3.x-2.3.x, а теперь продвигаю Node.js в массы.
PM MAIL WWW   Вверх
krundetz
Дата 15.6.2008, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

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



Zamuta я видимо не очень ясно выразился вот Sannis перевел правильно. Тоесть изначально у вас страница загружается с недоступными элементами делается это просто прописывание css прямо в тегах а потом уже после того как она загрузиться вся мы по onload вызовем функцию которая сделает доступными эти элементы формы.


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
Zamuta
Дата 15.6.2008, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Разобрался, спасибо.


--------------------
Thank you opensource.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




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


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

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