Программирование > JavaScript & JScript

Самозакрывающийся popup

<< < (2/2)

ast-ross:
html_coder, спасибо за код!

Вот что у меня получилось (немного изменил, теперь закрываеться по событию onunload() мне так удобнее...):


--- Код: ---



function show_wait_answer() {
 document.getElementById(\'popup\').style.display = \'block\';
 }
function WinChildAllClose() {
 // тут мои функции
 document.getElementById(\'popup\').style.display = \'none\';
 }


#popup {
 DISPLAY: none;
 POSITION: absolute;
 WIDTH: 400px;
 HEIGHT: 100px;
 LEFT: 50%;
 TOP: 50%;
 MARGIN-LEFT: -200px;
 MARGIN-TOP: -50px;
 BORDER: double 3px #000000;
 BACKGROUND: #FFFFFF;
 TEXT-ALIGN: center;
 FONT-SIZE: 15px;
 COLOR: #000000;
 FONT-FAMILY: Tahoma, Arial, Helvetica, sans-serif;
 }






Загрузка...
LINK



--- Конец кода ---


Я убрал из кода: var HTMLDivElement = document.getElementById(\'popup\');
Может зря? Просто подумал что эта переменная будет лишней.

Теперь основной вопрос!!!
Все работает замечательно и в файрфоксе и в осле, слой позиционируеться ровно по центру экрана, однако если список ссылок большой и его прокручивать то при клике на ссылке слой с надписью загрузка остаеться на верху. Вопрос: как привезать координаты Y курсора для слоя, т.е. что бы слой позиционироваля по высоте на уровне ссылки.
Что я думаю по этому поводу: во первых убрать из стилей 2 строки:
TOP: 50%;
MARGIN-TOP: -50px;
Вот их и надо как то динамически подставлять в функции show_wait_answer(). Может так: OnClick="show_wait_answer(this,event);"
А вот как теперь в функции это все реализовать?

ast-ross:
Вот так заработало под ослом файрфоксом и оперой, покритикуйте может где что не так, на жабе тока тока писать учусь...

--- Код: ---



function show_wait_answer(CursorY) {
 document.getElementById(\'popup\').style.display = \'block\';
 document.getElementById(\'popup\').style.top = CursorY-50;
 }

function objectXY(obj) {
 var x = 0, y = 0;
 do {
   x +=obj.offsetLeft;
   y +=obj.offset.top;
  }
 while (typeof(obj = obj.offsetParent) != \'undefined\' && obj != null);
 return [x,y];
 }

function WinChildAllClose() {
 // тут мои функции
 document.getElementById(\'popup\').style.display = \'none\';
 }


#popup {
 DISPLAY: none;
 POSITION: absolute;
 WIDTH: 400px;
 HEIGHT: 100px;
 LEFT: 50%;
 MARGIN-LEFT: -200px;
 BORDER: double 3px #000000;
 BACKGROUND: #FFFFFF;
 TEXT-ALIGN: center;
 FONT-SIZE: 15px;
 COLOR: #000000;
 FONT-FAMILY: Tahoma, Arial, Helvetica, sans-serif;
 }






Загрузка...
LINK



--- Конец кода ---


Подскажите может можно более грациозно это сделать и затолкать все в одну функцию show_wait_answer...

Навигация

[0] Главная страница сообщений

[*] Предыдущая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии