В этой статье мы рассмотрим самый простой способ создания модального окна, с затемненным фоном, внутри которого будет форма обратной связи.
Для начала о файловой структуре:
- index.html - основной файл разметки
- css/template.css - файл стилей в специальной папке
- js/popup.js - файл со скриптами нашего всплывающего окна
Так как мы используем библиотеку jQuery, не забываем подключить её в index.html.
Мы рассмотрим всего лишь один способ создания всплывающей формы обратной связи, по нашему мнению, самый простой и почти не требующий скриптов.
Идея такая. Изначально у нас будет блок, который будет поверх всей страницы, внутри которого будет блок, отвечающий за затемненный фон и блок с самой формой обратной связи. Основной блок будет спрятан посредством display:none. При нажатии на кнопку показа формы обратной связи она будет плавно появляться, при щелчке на затемненный фон, так же плавно исчезать.
Сделаем заготовку HTML-разметки:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Демо-страница с всплывающей формой обратной связи</title>
<link rel="stylesheet" href="/../css/template.css" type="text/css" />
<SCRIPT type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></SCRIPT>
<script type="text/javascript" src="/js/popup.js"></script>
</head>
<body>
<button onclick="showPopup();">Нажми на меня, чтобы показать форму обратной связи</button>
<div class="popup">
<div class="popup_bg"></div>
<div class="form">
<form>
<input type="text" placeholder="Ваше имя">
<input type="text" placeholder="Ваша почта">
<textarea></textarea>
<input type="submit" calue="Отправить">
</form>
</div>
</div>
</body>
</html>
Следующий шаг - подготовить файл стилей, зададим основным классам всплывающего окна необходимые параметры и добавим некоторые для красоты:
body {
margin:0;
text-align:center;
}
body button {
cursor:pointer;
margin:40px 0 0 0;
}
.popup {
position: absolute;
height:100%;
width:100%;
top:0;
left:0;
display:none;
}
.popup_bg {
background:rgba(0,0,0,0.4);
position:absolute;
z-index:1;
height:100%;
width:100%;
}
.form {
position: relative;
margin:4px auto;
z-index:2;
width:200px;
padding:40px 20px;
background:#FFFFFF;
border:1px solid #666666;
border-radius:20px;
box-shadow:0 0 2px rgba(0,0,0,0.5);
}
.form input {
width:96%;
padding:5px 2%;
margin:10px 0;
border-radius:4px;
}
И добавляем совсем немного js-кода в popup.js:
$(document).ready(function() { // Ждём загрузки страницы
$(".popup_bg").click(function(){ // Событие клика на затемненный фон
$(".popup").fadeOut(800); // Медленно убираем всплывающее окно
});
});
function showPopup() {
$(".popup").fadeIn(800); // Медленно выводим изображение
}
Результат примера вы можете посмотреть на демо-странице:

Исходники примера скачать по ссылке ниже:

Задавайте вопросы в комментариях ниже.
Комментарии
$('.show_popup').click (function showPopup() {
$(".popup").fadeIn(800); // Медленно выводим изображение
})
вот так ваша функция заработала. только еще нужно дать класс кнопке
Здравствуйте, вы совершенно правы, видимо мы из демо примера не весь код скопировали, но в нашем варианте, мы добавляем BUTTON не класс, а атрибут onClick с параметром "showPopup();"
В данному уроке не рассматривается создание работающей формы, урок ориентирован на то, чтобы научить созданию модальных окон.
Урок по созданию формы обратной связи - http://www.web.cofp.ru/vse-o-sajtakh/sozdanie-sajta/php/152-prostaya-forma-obratnoj-svyazi-svoimi-rukami
Если совместить знания из этой статьи и там, можно получить форму обратной связи во всплывающем окне.
P.S. Статьи на сайте призваны помочь научится своими руками создавать что-то, а не предоставлять готовый код.
RSS лента комментариев этой записи