[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Запустить функцию при клике на области (div)
inpost
Пытаюсь реализовать модальные окна только своими руками. Всё сделал кроме одного. При нажатии на фотографию, открывается (как бы) модальное окно, на самом деле это появляется скрытый див на весь экран с размерами 100% на 100% с задним фоном рисунка png, прозрачность 20%, эфект как при модальных окнах, вообщем. Закрывается этот див при нажатии на кнопку "Закрыть окно", тоесть скрипт выполняет функцию: hide/show.
Ситуация такая: нажали на кнопку, посреди экрана открывается таблица размером 800/600 где-то, в ней картинка, под ней маленькая надпись "закрыть", всё остальное вокруг пустая область в тумане из-за заднего фона, див этот имеет z-index=5, а значит, находится над всеми объектами и никак на другие объекты не нажимается.
Вроде достаточно объяснил, что я реализую.

Я это всё организовал сам, на яваскрипте, дальше мои познания зашли в тупик, подскажите люди добрые.

Что мне надо: а надо, чтоб при нажатии на область этого основного дива выполнялась конкретная функция (сделать OnClick на область вокруг таблицы - тоесть ВЕСЬ экран КРОМЕ таблицы). При этом надо ограничить зону нажатия - всё, кроме таблицы, находящейся посредине экрана, в которой текст и рисунок. Хм, товтология...

Вопрос: как это реализовать? За сам скрипт был бы вдвойне счастливее!!! Подскажите. Буду добрым, научусь и другим хорошим людям буду помогать smile.gif

P.S. Если нужны скрипты - я могу опубликовать, но мне кажется описание сделано это куда короче =)



Спустя 1 час, 52 минуты, 28 секунд (23.12.2009 - 01:45) qpayct написал(а):
На сколько я знаю, если обьект(картинка) в диве, то клик в любом месте(включая внутренние обьекты) вызовет событие дива. Организуй карту
<map>тут делишь на области</map>
в которой пропиши области ширина*длинна, при клике на которые будут происходить различные события.

Спустя 2 минуты, 16 секунд (23.12.2009 - 01:47) inpost написал(а):
А есть другие варианты?
gpayct - спасибо, завтра попробую, ато уже поздно сегодня, спать ложусь!

Спустя 7 часов, 13 минут, 37 секунд (23.12.2009 - 09:01) sergeiss написал(а):
Цитата (inpost @ 23.12.2009 - 00:53)
Что мне надо: а надо, чтоб при нажатии на область этого основного дива выполнялась конкретная функция (сделать OnClick на область вокруг таблицы - тоесть ВЕСЬ экран КРОМЕ таблицы). При этом надо ограничить зону нажатия - всё, кроме таблицы, находящейся посредине экрана, в которой текст и рисунок. Хм, товтология...

А по-моему, тут "проще некуда". Делаем ДИВ, и делаем еще ДИВ. Во втором находится "таблица посреди экрана", первый - тот самый "во весь экран". Для первого делаем onclick. И тогда твой функционал получается автоматически, средствами браузера, безо всяких "танцев с бубном".
Надо только учесть, что при прописке ДИВы должны быть независимы, т.е. НЕ вложены. Ну, и z-index'ы прописать правильно у них.

Спустя 1 час, 36 минут, 59 секунд (23.12.2009 - 10:38) inpost написал(а):
Спасибо, Сергеисс. мне точно такая же мысль пришла во время сна, только не знал, будет ли работать она! smile.gif))
Вот что делает с человеком хороший сон! А за помощь всё равно спасибо!!! smile.gif

Спустя 8 минут, 10 секунд (23.12.2009 - 10:46) sergeiss написал(а):
Цитата (inpost @ 23.12.2009 - 11:38)
мне точно такая же мысль пришла во время сна

Хм... Интересно... Говорит ли это о том, что я сплю на работе? wink.gif

Спустя 26 минут, 32 секунды (23.12.2009 - 11:13) inpost написал(а):
Кто Вас знаешь! Может и спите... smile.gif Я вообще люблю прилечь на пару минуток во время бурных мыслей, там лучше всего думается мне!
Теперь другая проблема, с позиционированием абсолютным этого самого дива, чтобы стоял он ровно по центру с размерами ширины 700пх.
#regif {display:none; position:absolute; top:250px; left:15%; width:700px; height:270px; z-index:5;}


Cделал так, что left:15% работает отлично на разрешениях 1024х768, а с моим 1920х1080 он криво и сбоку стоит. Но это я думаю уже другая история smile.gif Буду думать =)

Спустя 29 минут, 26 секунд (23.12.2009 - 11:42) sergeiss написал(а):
Цитата (inpost @ 23.12.2009 - 12:13)
Буду думать =)

А тут и думать особо не надо... Ты же в JS работаешь, т.е. на клиентской стороне.
Поэтому не думаешь, а делаешь. Определяешь текущий размер окна браузера, и выставляешь не проценты, а (вычисленные тут же тобой) координаты. Как по высоте, так и по ширине. В итоге ты можешь выставить окно там, где захочешь, и без проблем. Хоть в центре, хоть в любом углу, хоть с делением пропорций "справа-слева" (или сверху-снизу)) по золотому сечению smile.gif

PS. А может, это был не сон, а медитация? biggrin.gif


_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.