Программирование > JavaScript & JScript
Самозакрывающийся popup
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...
Навигация
Перейти к полной версии