Автор Тема: Самозакрывающийся popup  (Прочитано 4543 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ast-ross

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 23
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Самозакрывающийся popup
« : 29 Сентября 2006, 15:01:13 »
Народ помогите! Как сделать чтобы при клике на ссылку открывалось маленькое окно по центру экрана с надписью "Пожалуйста дождитесь ответа сервера" и само закрывалось через 3 секунды, типа LINK
И еще желательно что бы окно было вообще просто слоем т.е. по идее в функции popup() должно слой должен стать видимым на 3 секунды
В java script я полный дуб!

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
Самозакрывающийся popup
« Ответ #1 : 29 Сентября 2006, 17:00:12 »
Вот тебе рабочий набросок, дальше крути сам как хочешь


<html>
	
<
body>
	
	
<
a href="#" onClick="show_popup()">Ссылка</a>
	
	
<
div id="popup" style="display: none; border: 1px solid">Пожалуйста дождитесь ответа сервера...</div>
	
	
<
script language="JavaScript" type="text/javascript">
	
	
	
function 
show_popup()
	
	
	
{
	
	
	
	
var 
HTMLDivElement document.getElementById(\'popup\');
	
	
	
	
HTMLDivElement.style.display = \'block\';
	
	
	
	
setTimeout(\'hide_popup()\', 3000);
	
	
	
	

	
	
	
}
	
	
	
function hide_popup()
	
	
	
{
	
	
	
	
var HTMLDivElement = document.getElementById(\'popup\');
	
	
	
	
HTMLDivElement.style.display = \'none\';
	
	
	
}
	
	
</script>
	
<body>
</html>


Чтобы не быть совсем дубом загляни сюда window.setTimeout

сюда http://developer.mozilla.org/en/docs/DOM

и наконец сюда http://developer.mozilla.org/en/docs/JavaScript

Оффлайн hanslinger

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
Самозакрывающийся popup
« Ответ #2 : 29 Сентября 2006, 17:35:40 »
[OFF]html_coder
А еще бы handler таймаута убить… :-)[/OFF]

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
Самозакрывающийся popup
« Ответ #3 : 29 Сентября 2006, 17:48:13 »
hanslinger
Поясни, а лучше брось кусок кода! )

Оффлайн hanslinger

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
Самозакрывающийся popup
« Ответ #4 : 29 Сентября 2006, 18:46:14 »

Оффлайн ast-ross

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 23
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Самозакрывающийся popup
« Ответ #5 : 04 Октября 2006, 07:11:59 »
html_coder, спасибо за код!

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











Загрузка...

LINK




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

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

Оффлайн ast-ross

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 23
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Самозакрывающийся popup
« Ответ #6 : 04 Октября 2006, 13:02:37 »
Вот так заработало под ослом файрфоксом и оперой, покритикуйте может где что не так, на жабе тока тока писать учусь...










Загрузка...

LINK




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

 

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