Jump to content
  • 0

Появляющийся поверх всего слой


Sserg-135
 Share

Question

Форумчане, правильно ли я понимаю технологию создания появляющегося слоя в центре странички (например как на этом форуме, когда кликаешь ссылку Регистрация или когда кликаешь на иконки BB кодов при оформлении новой темы ;) ):

Шаг1: Где-нибудь в теле HTML странички (в любом месте по сути?) создаем отцентрированный слой по принципу описанному например в http://htmlbook.ru/l...u-veb-stranitsy со свойством display:none и с нужным содержанием

Шаг 2: на JS пишем коротенкую функцию, которая при клике на ссылку, по которой нужно открыть этот слой, меняет свойство слоя display:visible и ставит z-index 100000, чтобы слой был поверх всего.

Так правильно? или весь слой надо формировать исключительно средствами JS?

И как тогда делается эффект затемнения "нижележащих" слоев? через слой с полупрозрачным фоном, через opacity или полупрозрачныу картинку в фоновом рисунке формата png?А эффект небольшой тени только по периметру слоя?

Буду рад подсказкам :-)

Спасибо

Edited by Sserg-135
Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0

Скачайте, например, fancybox и посмотрите на него :-)

А вообще на хабре да и в интеренете много статей было, как сделать модальное окно на чистом html, так и похожее на fancybox

  • Like 1
Link to comment
Share on other sites

  • 0

Такой способ имеет право на жизнь? :) (код и идея слоя взяты из примеров с этого сайта)http://jsfiddle.net/sjC8A/Или не комильфо? :)

Правда почему-то при загрузке с первого клика не работает...

Edited by Sserg-135
Link to comment
Share on other sites

  • 0

Правда почему-то при загрузке с первого клика не работает...

Потому что block.style.display изначально - пустая строка. block.style - это то, что назначено непосредственно через атрибут style элемента. Поглядите в DOM-инспекторе, там это прекрасно видно.

Link to comment
Share on other sites

  • 0

Правда почему-то при загрузке с первого клика не работает...

Потому что block.style.display изначально - пустая строка. block.style - это то, что назначено непосредственно через атрибут style элемента. Поглядите в DOM-инспекторе, там это прекрасно видно.

Не совсем понятно почему так выходит. Т.е в данном случае свойство display нужно прописывать непосредственно в тэге <div style='display: none;'> ?

Link to comment
Share on other sites

  • 0

Не совсем понятно почему так выходит.

Что именно непонятно? Я ж вроде объяснил.

Т.е в данном случае свойство display нужно прописывать непосредственно в тэге <div style='display: none;'> ?

Sserg-135, как вариант...

Link to comment
Share on other sites

  • 0
Потому что block.style.display изначально - пустая строка.
- именно это и не пойму, в стилях же прописано свойство, как-же тогда к нему обратиться, чтобы в тэге не прописывать? Edited by Sserg-135
Link to comment
Share on other sites

  • 0

var computedStyle = window.getComputedStyle( myElement );

А вообще, можете просто при инициализации скрипта выставлять style.display = 'none'. Либо при переключении выставлять display = 'block', если display == '' то значит он скрыт (через css)

Edited by danik.html
  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy