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; }
- Log in to post comments
- 3751 reads