jquery Создание модального всплывающего окна с затемнением фона -- простой пример пример JS, CSS и HTML
Primary tabs
Цель -- возможность вещать на разные ссылки появление разных модельных окон. В примере ниже мы повесим, такой обработчик только на одну.
HTML
<ul> <li><a id="people-list" href="#">Посмотреть</a></li> <li><a href="#">Добавить</a></li> <li><a href="#">Загрузить списки</a></li> <li><a href="#">Скачать списки </a></li> </ul> <div id="people-list" class="modal"> <!-- Modal content --> <div class="modal-content"> <span class="close">×</span> <p>Список участников</p> </div> </div>
JS (JQuery)
(также убедитесь что на вашей страницы подключен JQuery до файла с кодом ниже)
/*После загрузки jquery*/
$(function() {
init();
});
function init() {
initShowModals();
initHideModals();
return false;
}
function initShowModals()
{
/**
* При клике по блоку с этим id
* показываем модальное окно,
* таких ссылок/кнопок для разных
* модальных окон может быть сколько угодно.
*/
$('#show-affected-people-list').on('click', function() {
var $upBlock = $("#affected-people-list");
$upBlock.show('slow');
console.log('show list');
return false;
});
// по аналогии далее можно привязать показ блоков и с другим id
}
/**
* Отдельно прикручиваем обработку
* сокрытия окон
*
* @returns {undefined}
*/
function initHideModals()
{
/**
* Клик по области затемнения (непосредственно
* -- т.е. сбоку от модального окна)
* или по элементу "закрыть" внутри модального окна
*/
$('.modal, .close ').on('click', function() {
$('.modal').hide('slow');
return false;
});
/* Перехватываем клик, чтобы можно было кликать
* по модальному окну и оно бы при этом не скрывалось*/
$('.modal-content').on('click', function() {
return false;
});
}
CSS
Обратите внимание на величину z-index родительского блока, возможно её придётся варьировать для вашей HMTL страницы:
/* Фоновое затемнение */
.modal {
display: none; /* Hidden by default */
position: fixed; /* Stay in place */
z-index: 10; /* Показывать поверх (может быть придётся увеличить это число для вашей страницы) */
left: 0;
top: 0;
width: 100%; /* Full width */
height: 100%; /* Full height */
overflow: auto; /* Enable scroll if needed */
background-color: rgb(0,0,0); /* Fallback color */
background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
}
/* Само модальное окно (над затемнением) */
.modal-content {
background-color: #fefefe;
margin: 15% auto; /* 15% from the top and centered */
padding: 20px;
border: 1px solid #888;
width: 80%; /* Could be more or less, depending on screen size */
position: relative;
}
/* Кнопка "закрыть (крестик)" */
.close {
color: #aaa;
float: right;
font-size: 28px;
font-weight: bold;
}
.close:hover,
.close:focus {
color: black;
text-decoration: none;
cursor: pointer;
}
Источник: https://www.w3schools.com/howto/howto_css_modals.asp
- Log in to post comments
- 4364 reads