10 октября 2013
23995
модальное окно, модальное окно на javascript

Модальное окно на JavaScript

JavaScript
Демонстрация » Скачать »

Модальное окно - это контейнер, который при нажатии ссылки всплывает и предоставляет какую-либо информацию. Думаю многие уже знакомы с ним, ну если же нет посмотрите демо версию, чтобы понять что это такое. Сейчас их насчитывается огромное множество и каждый работает по своему. Например, есть совершенно стандартные модальные окна на JavaScript, которые запрашивают выполнить какое то действие, в данном примере подтверждения. Или например, другой вариант, всплывающее модальное окно при первом заходе на сайт, которое актуально будет подходить под различные подписки на группы в социальных сетях.  Есть модальные окна на чистом CSS, ну мне хотелось бы отвести эту долю JavaScript, так как на нем это более интереснее получается и не плохо работает во всех браузерах.

 

ШАГ ПЕРВЫЙ. Код JavaScript.

 

Чтобы запустить модальное окно, нужно передать функции значение window.onload. В котором мы будем передавать два элемента идентификатора "a" и "b".

//передача элементов по id "a" и "b"
window.onload = function()
{
a = document.getElementById("a");
b = document.getElementById("b");
} 

 

Затем мы прописываем функцию "showA", которая будет показывать модальное окно и передавать элементам "a" и "b" стили, а именно мы задали прозрачность, ширину и блокировку окна, если не была нажата ссылка "открыть".

 

//показываем окно функции "showA"
function showA()
{
//Задаем прозрачность и блокируем дисплей
//элемента "b"
b.style.filter = "alpha(opacity=80)";
b.style.opacity = 0.8;
b.style.display = "block";
// Задаем блокироваку и отступ сверху в 200px
//элемента "a"
a.style.display = "block";
a.style.top = "200px";
}

 

После открытия модального окна, нам нужно как то его потом закрыть или скрыть, для этого прописываем функцию "hideA", которая будет скрывать модальное окно и прописываем ей стили для элементов "a" и "b".

 

//Вызываем функцию "hideA", которая будет скрывать 
//окно для элементов "a" и "b"
function hideA()
{
b.style.display = "none";
a.style.display = "none";
}

 

 

Полный код.

 

<script>
//передача элементов по id "a" и "b"
window.onload = function()
{
a = document.getElementById("a");
b = document.getElementById("b");
} 

//показываем окно функции "showA"
function showA()
{
//Задаем прозрачность и блокируем дисплей
//элемента "b"
b.style.filter = "alpha(opacity=80)";
b.style.opacity = 0.8;
b.style.display = "block";
// Задаем блокироваку и отступ сверху в 200px
//элемента "a"
a.style.display = "block";
a.style.top = "200px";
}

//Вызываем функцию "hideA", которая будет скрывать 
//окно для элементов "a" и "b"
function hideA()
{
b.style.display = "none";
a.style.display = "none";
}      
</script>

 

 

ШАГ ВТОРОЙ. Код HTML.

 

Прописываем ссылку, которая будет "открывать" модальное окно и придаем ей класс "pages", он будет влиять только на внешнее оформление ссылки.

 

<a href="#" onclick="showA();" class="pages">Открыть</a>

 

В теге "div" указываем идентификатор "a", который будет взаимодействовать со стилями CSS и с кодом JavaScript. Далее прописываем еще один тег "div" и придаем ему идентификатор "windows", который будет выполнять роль разметки внутри контейнера модального окна.

Внутри указываем ссылку, которая будет "закрывать" модальное окно, также придаем ей стиль "pages" и по умолчанию задаем ей стиль "float: right", то есть будем отображать ссылку закрытия модального окна в верхнем правом углу.

 

<div id="a"><div id="windows">
<!-- Ваш текст -->
<a href="#" onclick="hideA();" class="pages" 
style="float: right;">Закрыть</a>
</div></div>

 

Прописываем идентификатор "b", который будет скрывать окно.

 

<div id="b"></div>

 

Полный код.

 

<a href="#" onclick="showA();" class="pages">Открыть</a>

<div id="a"><div id="windows">
<!-- Ваш текст -->
<a href="#" onclick="hideA();" class="pages" 
style="float: right;">Закрыть</a>
</div></div>

<div id="b"></div>

 

 

ШАГ ТРЕТИЙ. Код CSS.

 

Обязательные стили CSS, без которых модальное окно будет не правильно работать, а точнее вообще некорректно работать и отображать информацию.

 

И так первый обязательный стиль, касающийся позиции, в данном примере это fixed. Он позволяет отображать модальное окно, при  этом ограничивая его с границей заливки. С помощью z-index мы указываем насколько модальное окно идентифицируется после нажатии ссылки "открыть", а также "закрыть". Также display: none, который позволяет скрывать модальное окно до нажатия ссылки.

 

#b {
position:fixed;
top:0;
left:0;
right:0;
bottom:0;
display:none;
background: grey;
z-index:1;
}

#a {
border:1px solid black;
position:fixed;
background: #eff7ff;
z-index:3;
display:none;
}

#windows {
padding:5px;
width: 500px;
height: 300px;
border: 2px solid blue; 
}

a.pages
{
background: #97cdff;
color: white;
padding: 4px;
text-decoration: none;
}

a:hover.pages
{
background: red;
color: white;
padding: 4px;
text-decoration: none;
}

 

Всем огромное спасибо за Ваше внимание!