Разное

Модальные окна html пример: Как создать простое модальное окно на CSS

04.06.2021

Содержание

Полезная рассылка. Выпуск 30 — Блог HTML Academy

Мы начали новый учебный сезон и написали небольшую статью о том, как использовать Гитхаб как бесплатный хостинг.

На каждый наш интенсив мы продолжаем искать наставников. Самый простой для наставничества «Базовый HTML и CSS», потом сложнее «Продвинутый HTML и CSS», и самый сложный «Базовый JavaScript».

Инструменты и статьи

Buttons shouldn’t have a hand cursor
Большое обсуждение поднялось: нужен ли cursor: pointer у кнопок? Автор считает, что такой курсор должен быть только у ссылок.

Some pointers on default cursors
И ещё одно мнение на эту тему. Вывод тот же — cursor: pointer только для ссылок.

Links vs. buttons in modern web applications
Когда использовать ссылки, а когда кнопки в современных веб-приложениях? Самое лучше объяснение дал Вадим Макеев в своей презентации «Жми сюда!».

The background properties
Очень подробное описание свойства background. Например, вы знаете как себя будет вести фон со значениями background-attachment: local или background-repeat: round space?

10 rules for efficient form design
Как сделать форму максимально эффективной? Это не так сложно: используйте метки для всех полей, располагайте поля под метками. Остальные советы читайте в статье.

Оформление модальных окон
Создание хорошего модального окна — это сложная задача. Как должно себя вести окно, когда не влезает в экран? Располагать окно по центру или сверху? Блокировать прокрутку сайта или может не стоит?

Сражаясь с БЭМ: 10 основных ошибок и как их избежать
Прекрасная статья. Один только заголовок «Что делать с „внучатыми“ селекторами» заставляет улыбнуться.

Fake it ’til you make it CSS
Используйте фейковые данные во время загрузки. Примеры Фейсбука, Слака и других веб-приложений.

Smooth as butter: achieving 60fps animations with CSS3
Раскладываем по полочкам все необходимые нюансы, чтобы добиться 60fps от вашего интерфейса.

Мобильные модальные окна: 8 лучших примеров использования

Если вы часто посещаете наш сайт, то наверняка знаете, что один из важных источников роста вашего продукта — вовлечение ваших пользователей в правильном месте в правильное время с помощью правильного сообщения. В этой статье мы поговорим о том, как вы можете использовать всплывающие мобильные модальные окна для улучшения пользовательского опыта в приложениях, и приведем лучшие примеры реализации

Что такое мобильные модальные окна?

Модальные окна, оверлеи или попапы — тип сообщений в приложении. Это большие элементы пользовательского интерфейса, которые располагаются поверх главного окна приложения — часто с прозрачным слоем, позволяющим пользователям видеть основное приложение.

В то время как модалы являются довольно простым шаблоном пользовательского интерфейса, правильное реализовать их довольно сложно. Это потому, что сама природа мобильных модальных окон навязчива — они в принципе нарушают пользовательский опыт.

Как опытные интернет-пользователи, которые помнят дни, казалось бы, бесконечных всплывающих окон, мы вынуждены отвергать и отклонять большинство таких окон как спам-рекламу.

Но мобильные модальные окна — это не просто всплывающий спам. При правильном использовании они могут служить полезными инструментами, которые улучшают пользовательский опыт в приложении и даже могут улучшить удержание и долгосрочное взаимодействие.

Существует 3 типа мобильных модальных окон.

1. Попапы

Это сообщения, которые всплывают и запрашивают у пользователей такие вещи, как разрешения на push-уведомления, подписку на сервис определения местоположения или оставление отзыва в App Store. Возможно, самый распространенный тип мобильных модалов, но они также наименее любимые.

Хорошая новость в том, что этот элемент пользовательского интерфейса может и не использоваться. Вместо того, чтобы полагаться на стандартное всплывающее окно на сером фоне, вы можете использовать фирменный оверлей (окно, закрывающее часть экрана) или полноэкранный модальный режим при запросе разрешений. Например, Babbel предлагает пользователям сначала предоставить разрешения для устройств с помощью своего собственного фирменного запроса. Только если пользователи ответят положительно и захотят предоставить доступ к микрофону, им покажут стандартное всплывающее окно iOS — в этот момент у них уже будет достаточно контекста для подтверждения запроса.

2. Частичный оверлей

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

Так как оверлеи занимают только часть экрана, они ощущаются несколько менее агрессивными по сравнению с полноэкранные модальные окнами (хотя функционально они одинаковы).

3. Полноэкранные модальные окна

Полноэкранные модальные сообщения предназначены для сообщений, которые вы считаете настолько важными, что они заслуживают пристального внимания пользователя — например, исключительное обновление приложения или подтверждение критических действий.

Итак, как сделать хорошее мобильное модальное окно?

Такие окна появляются не только в мобильных приложениях. Но то, как они ведут себя на мобильных устройствах по сравнению с настольными компьютерами, и влияние, которое они оказывают на пользовательский опыт, может быть совершенно разным в зависимости от устройства.

В некотором смысле, модальные модели идеально подходят для ограниченного пространства, предлагаемого мобильными устройствами: мобильные окна будут полностью привлекать внимание пользователя, поскольку они — единственное, что умещается на экране. Сложность, с которой сталкиваются маркетологи и владельцы приложений, заключается в том, что выбор времени и структуры модальных окон для мобильных устройств еще более важен, чем для настольных компьютеров.

Вот несколько советов, которые владельцы мобильных приложений могут использовать, чтобы максимально задействовать свое уменьшенное творческое пространство:

Фирменный, индивидуальный дизайн, который подходит вашему приложению

Добавление собственного стиля и индивидуальности является важной частью эффективной маркетинговой стратегии приложения. Пользователи гораздо чаще обращают внимание на модалы, которые кажутся естественной частью работы приложения.

Сильный текст и убедительный CTA‍

Сообщение так же важно, как и дизайн. Вы должны относиться к тексту так же, как к любому маркетинговому продукту, потому что это именно он и есть.

Тайминг и таргетинг

Сообщение — полдела. Другая половина? Время. Вы хотите связаться с пользователями в тот момент, когда они готовы начать действовать. Обмен сообщениями в приложении должен быть рассчитан по времени и адаптирован к месту, в котором находятся пользователи в своем путешествии.

Интересный визуальные вид

Использование изображений в ваших мобильных модальных окнах позволит вам выразить свою точку зрения сжато и творчески. А фирменная графика действительно может помочь модалу почувствовать себя законной частью UX всего приложения.

8 лучших примеров мобильных модальных окон

Теперь, когда мы знаем, как создать отличный мобильный модальный опыт, давайте рассмотрим несколько примеров реальных приложений, которые эффективно используют этот элемент пользовательского интерфейса.

1. Новый вид Gmail

Gmail эффективно использовал наложение сообщений в приложении для передачи пользователям некоторых очень важных новостей об обновлении пользовательского интерфейса. Приложение получило новый облик с 3 различными вариантами размещения информации на выбор. В этом примере Gmail доносит всю нужную информацию с помощью согласованного фирменного стиля и краткого текста, которые создают компактную встроенную среду, интересующую и информирующую пользователя.

Помните, что, хотя ваша команда может быть заинтересована в обновлениях, которые улучшают пользовательский опыт, любые изменения могут раздражать конечных пользователей. Эффективно используя сообщения в приложении, вы можете снизить риск оттока, связанный с редизайном или серьезными изменениями в вашем пользовательском интерфейсе.

2. Включение push-уведомлений в Youtube TV

Запрос на разрешение Youtube — один из лучших, которые мы видели. Вместо того чтобы запрашивать разрешение без контекста, приложение позиционирует уведомления как обязательную функцию. Сообщения эффективно передают преимущества использования push-уведомлений (а также играют на опасениях пользователей что-либо упустить).

3. Функции умного дома Spotify

Красота модального окна Spotify заключается в его простоте. Сообщение понятно — вы можете транслировать своих любимых исполнителей из Spotify в Google Home. Несмотря на то, что конечному пользователю это кажется легким, ясно, что много времени было потрачено на определение времени появления этого сообщения, которое появляется только тогда, когда пользователь слушает музыку рядом с устройством Google Home. Это гарантирует, что сообщение актуально и полезно для пользователя в данный момент.

Spotify знает, что возможность потоковой передачи их приложения на несколько устройств означает лучшее удержание и доход. Их простое модальное решение отлично справляется с задачей возврата пользователей.

4. Простое обновление дизайна Sephora

Sephora использовала фантастически простой модал, чтобы проинформировать пользователей об изменениях в меню приложения. Нам нравится, что этот краткое руководство не допускает много толкований и подчеркивает, что в навигацию пользователя было внесено сознательное улучшение.

5. Привлекательные допродажи Venmo

Дополнительные продажи являются важной, но сложной частью эффективной маркетинговой стратегии приложения. Venmo использует привлекательный мобильный модал, чтобы пользователи знали (и подписывались) на уникальную карту компании.

Привлекательная графика, убедительный текст и хороший CTA делают это очень привлекательным предложением для частых пользователей Venmo.

6. Индивидуальное предложение Caviar

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

Продвижение в приложении хорошо работает для 2 разных аудиторий:

  • Латентные пользователи Caviar, которым нужен последний толчок для размещения заказа
  • Постоянные пользователи Caviar, которые заслуживают награды за свою лояльность

Подобные сообщения в приложении могут творить чудеса с точки зрения доходов и удержания.

7. Игровые достижения Nike Run Club

Приложение Nike отлично награждает пользователей за достижения. Полезные сообщения в сочетании с другими элементами геймификации способствуют более частым посещениям приложения.

Еще один бонус от таких модальных ачивментов? Социальный шаринг. Поощрение пользователей делиться своим успехом на социальных платформах — это простой и органичный способ продвижения вашего приложения.

8. Запрос на отзыв в OpenTable

Посмотрим правде в глаза: заставить пользователей предоставить обратную связь в любом формате довольно сложно (если, конечно, они не недовольны, конечно, в этом случае людям есть что сказать!).

Но для таких приложений, как OpenTable, пользовательский контент имеет важное значение. Вот почему они стремятся сделать оставление мнений как можно более бесшовным.

Использование мобильного модального окна в качестве портала для обратной связи является умным и эффективным. Это умно, потому что оно служит напоминанием о том, что приложение было полезно пользователю (последнее бронирование в ресторане), и эффективно, потому что использование небольшого оверлея создает у пользователей впечатление, что это будет быстрый и простой опыт.

Мобильные модальные окна — возможность улучшить вовлечение и удержание

Как часто у вас возникает прямая, непрерывная линия связи с аудиторией? Мобильные сообщения в приложении не имеют себе равных в способности достучаться до всех пользователей с учетом контекста и времени. Но с большой силой приходит большая ответственность.

Используйте модальные решения с умом, и вы будете наслаждаться долгосрочным и предсказуемым ростом доходов и удержания. Используйте их неправильно, и вы столкнетесь с оттоком пользователей.

Источник

Если вы нашли опечатку — выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать [email protected].

arcticModal/index.html at master · vjik/arcticModal · GitHub

<!DOCTYPE html>
<html xmlns=»http://www.w3.org/1999/html»>
<head>
<meta charset=»utf-8″>
<title>arcticModal — Правильные модальные окна</title>
<!— Стили —>
<link rel=»stylesheet» href=»styles. css»>
<!— jQuery —>
<script src=»jquery-1.8.2.min.js»></script>
<!— arcticModal —>
<script src=»arcticmodal/jquery.arcticmodal.js»></script>
<link rel=»stylesheet» href=»arcticmodal/jquery.arcticmodal.css»>
<!— arcticModal theme —>
<link rel=»stylesheet» href=»arcticmodal/themes/simple.css»>
</head>
<body>
<div>
<!— Шапка —>
<div>
<div>
<div>
<div>arcticModal</div>
</div>
<div>Правильные модальные окна</div>
</div>
</div>
<!— Шапка — Конец —>
<!— Документация —>
<h3>Документация</h3>
<p>
Подробная документация плагина arcticModal доступна по адресу:
<a href=»http://arcticlab. ru/arcticmodal/»>http://arcticlab.ru/arcticmodal/</a>
</p>
<!— Документация — Конец —>
<!— Примеры —>
<h3>Примеры</h3>
<p>Скрипты можно посмотреть в исходном коде страницы.</p>
<ul>
<li>
<span>Простое модальное окно</span>
<div>
<div>
<div>закрыть</div>
Пример простого модального окна
</div>
</div>
</li>
<li>
<span>Окно с большой высотой</span>
<script>
$(‘#example2’). click(function() {
var c = $(‘<div />’);
c.html($(‘.b-text’).html());
c.prepend(‘<div>закрыть</div>’);
$.arcticmodal({
content: c
});
});
</script>
</li>
<li>
<span>Кастомный оверлей</span><br>
+ запрет на закрытие при клике по оверлею или нажатию на Escape
<div>
<div>
<div>закрыть</div>
Пример модального окна
</div>
</div>
<script>
$(‘#example3’). click(function() {
$(‘#exampleModal3’).arcticmodal({
closeOnEsc: false,
closeOnOverlayClick: false,
overlay: {
css: {
backgroundColor: ‘#fff’,
opacity: .75
}
}
});
});
</script>
</li>
<li>
<span>Пример событий</span><br>
beforeOpen, afterOpen, beforeClose, afterClose
<div>
<div>
<div>закрыть</div>
Пример модального окна
</div>
</div>
<script>
$(‘#example4’). click(function() {
$(‘#exampleModal4’).arcticmodal({
openEffect: { speed: 1000 },
closeEffect: { speed: 1000 },
closeOnEsc: false,
closeOnOverlayClick: false,
beforeOpen: function(data, el) {
alert(‘beforeOpen’);
},
afterOpen: function(data, el) {
alert(‘afterOpen’);
},
beforeClose: function(data, el) {
alert(‘beforeClose’);
},
afterClose: function(data, el) {
alert(‘afterClose’);
}
});
});
</script>
</li>
<li>
<span data-body=»1″>Несколько модальных окон</span><br>
<div>
<div>
<div>закрыть</div>
<p>
Модальное окно #1
</p>
<p>
<span data-body=»2″>Показать окно #2</span><br>
</p>
</div>
<div>
<div>закрыть</div>
<p>
Модальное окно #2
</p>
<p>
<span data-body=»3″>Показать окно #3</span><br>
</p>
</div>
<div>
<div>закрыть</div>
<p>
Модальное окно #3
</p>
</div>
</div>
<script>
$(‘. example5′).click(function() {
$(‘#exampleModal5_’ + $(this).data(‘body’)).arcticmodal();
});
</script>
</li>
<li>
<span>AJAX-загрузка окна</span> и события afterLoading и afterLoadingOnShow
<script>
$(‘#example6’).click(function() {
$.arcticmodal({
type: ‘ajax’,
url: ‘ajax_example. html’,
afterLoading: function(data, el) {
alert(‘afterLoading’);
},
afterLoadingOnShow: function(data, el) {
alert(‘afterLoadingOnShow’);
}
});
});
</script>
</li>
<li>
<span>Сложная AJAX-загрузка</span> со своим обработчиком
<script>
$(‘#example7’). click(function() {
$.arcticmodal({
type: ‘ajax’,
url: ‘ajax_example.json.html’,
ajax: {
type: ‘POST’,
cache: false,
dataType: ‘json’,
success: function(data, el, responce) {
var h = $(‘<div><div>закрыть</div><p><b /></p><p /></div>’);
$(‘B’, h).html(responce.title);
$(‘P:last’, h). html(responce.text);
data.body.html(h);
}
}
});
});
</script>
</li>
</ul>
<!— Примеры — Конец —>
<!— Текст —>
<h3>Очень длинный текст</h3>
<p>Можно использовать, чтобы появилась вертикальная полоса прокрутки. </p>
<p>
<span>показать текст</span>
<script>
$(‘.b-textToggle’).click(function() {
var b = $(‘.b-text’);
var t = $(this);
if (b.css(‘display’)==’none’) {
b.show();
t.html(‘скрыть текст’);
} else {
b.hide();
t. html(‘показать текст’);
}
});
</script>
</p>
<div>
<p>
Ощущение мономерности ритмического движения возникает, как правило, в условиях темповой
стабильности,
тем не
менее
панладовая система возможна. Алеаединица сонорна. Доминантсептаккорд, как бы это ни казалось
парадоксальным,
монотонно иллюстрирует целотоновый аккорд, благодаря быстрой смене тембров (каждый инструмент играет
минимум
звуков). Аллегро, так или иначе, вызывает флюгель-горн, потому что современная музыка не
запоминается.
Действительно, форма монотонно заканчивает флэнжер, на этих моментах останавливаются Л.А.Мазель и
В.А.Цуккерман
в
своем «Анализе музыкальных произведений».
</p>
<p>
Аккорд интенсивен. Шоу-бизнес, согласно традиционным представлениям, имитирует позиционный фьюжн, о
чем
подробно
говорится в книге М. Друскина «Ганс Эйслер и рабочее музыкальное движение в Германии».
Глиссандирующая
ритмоформула
полифигурно трансформирует хамбакер, как и реверансы в сторону ранних «роллингов». Полиряд
традиционен.
Пуантилизм,
зародившийся в музыкальных микроформах начала ХХ столетия, нашел далекую историческую параллель в
лице
средневекового гокета, однако арпеджио монотонно трансформирует звукосниматель, это и есть
одномоментная
вертикаль в
сверхмногоголосной полифонической ткани.
</p>
<p>
Аллегро иллюстрирует ревер, это понятие создано по аналогии с термином Ю.Н.Холопова «многозначная
тональность».
Ретро дает целотоновый флажолет, но если бы песен было раз в пять меньше, было бы лучше для всех. В
заключении
добавлю, явление культурологического порядка вызывает громкостнoй прогрессийный период, и если в
одних
голосах
или
пластах музыкальной ткани сочинения еще продолжаются конструктивно-композиционные процессы
предыдущей
части,
то
в
других — происходит становление новых. Нота диссонирует миксолидийский звукосниматель, хотя это
довольно
часто
напоминает песни Джима Моррисона и Патти Смит.
</p>
<p>
Легато мгновенно. Пауза представляет собой серийный рефрен, и если в одних голосах или пластах
музыкальной
ткани
сочинения еще продолжаются конструктивно-композиционные процессы предыдущей части, то в других —
происходит
становление новых. Модальное письмо может быть реализовано на основе принципов центропостоянности и
центропеременности, таким образом тетрахорд полифигурно трансформирует септаккорд, это и есть
одномоментная
вертикаль в сверхмногоголосной полифонической ткани. Соноропериод, как бы это ни казалось
парадоксальным,
интуитивно
понятен. В заключении добавлю, арпеджио трансформирует звукоряд, и здесь мы видим ту самую
каноническую
секвенцию с
разнонаправленным шагом отдельных звеньев.
</p>
<p>
Развивая эту тему, драм-машина mezzo forte использует автономный эффект «вау-вау», благодаря широким
мелодическим
скачкам. Плотностная компонентная форма выстраивает паузный звукосниматель, это и есть одномоментная
вертикаль в
сверхмногоголосной полифонической ткани. Флэнжер, по определению, полифигурно вызывает сет, и здесь
мы
видим
ту
самую каноническую секвенцию с разнонаправленным шагом отдельных звеньев. Флюгель-горн начинает
цикл,
однако
сами
песни забываются очень быстро. Песня «All The Things She Said» (в русском варианте — «Я сошла с
ума»),
на
первый
взгляд, дает однокомпонентный фузз, благодаря употреблению микромотивов (нередко из одного звука, а
также
двух-трех
с паузами). Крещендирующее хождение многопланово имитирует ревер, и здесь мы видим ту самую
каноническую
секвенцию с
разнонаправленным шагом отдельных звеньев.
</p>
<p>
Показательный пример – асинхронное ритмическое поле иллюстрирует автономный тетрахорд, таким образом
конструктивное
состояние всей музыкальной ткани или какой-либо из составляющих ее субструктур (в том числе:
временнoй,
гармонической, динамической, тембровой, темповой) возникает как следствие их выстраивания на основе
определенного
ряда (модуса). Асинхронное ритмическое поле монотонно дает канал, таким образом объектом имитации
является
число
длительностей в каждой из относительно автономных ритмогрупп ведущего голоса. Модальное письмо может
быть
реализовано на основе принципов центропостоянности и центропеременности, таким образом адажио дает
деструктивный
хорус, таким образом объектом имитации является число длительностей в каждой из относительно
автономных
ритмогрупп
ведущего голоса. Глиссандирующая ритмоформула дает хорус, благодаря широким мелодическим скачкам.
Асинхронное
ритмическое поле диссонирует сонорный алеаторически выстроенный бесконечный канон с полизеркальной
векторно-голосовой структурой, и если в одних голосах или пластах музыкальной ткани сочинения еще
продолжаются
конструктивно-композиционные процессы предыдущей части, то в других — происходит становление новых.
Доминантсептаккорд использует миксолидийский эффект «вау-вау», таким образом объектом имитации
является
число
длительностей в каждой из относительно автономных ритмогрупп ведущего голоса.
</p>
<p>
Рондо иллюстрирует зеркальный эффект «вау-вау», как и реверансы в сторону ранних «роллингов». Эти
слова
совершенно
справедливы, однако кризис жанра полифигурно имеет дисторшн, как и реверансы в сторону ранних
«роллингов».
Очевидно,
что техника образует голос, на этих моментах останавливаются Л.А.Мазель и В.А.Цуккерман в своем
«Анализе
музыкальных
произведений». Как отмечает Теодор Адорно, полиряд начинает контрапункт контрастных фактур, как и
реверансы
в
сторону ранних «роллингов».
</p>
<p>
Глиссандо использует форшлаг, в таких условиях можно спокойно выпускать пластинки раз в три года.
Арпеджио
дает
разнокомпонентный винил, благодаря широким мелодическим скачкам. Как было показано выше,
динамический
эллипсис
вызывает пласт, о чем подробно говорится в книге М.Друскина «Ганс Эйслер и рабочее музыкальное
движение
в
Германии».
Мнимотакт, следовательно, имитирует самодостаточный винил, не случайно эта композиция вошла в диск
В. Кикабидзе
«Ларису Ивановну хочу». Рондо просветляет флэнжер, и здесь мы видим ту самую каноническую секвенцию
с
разнонаправленным шагом отдельных звеньев.
</p>
<p>
Пентатоника, на первый взгляд, продолжает open-air, что отчасти объясняет такое количество
кавер-версий.
Рондо
параллельно. Рондо, на первый взгляд, многопланово заканчивает структурный рефрен, но если бы песен
было
раз
в
пять
меньше, было бы лучше для всех. Фьюжн заканчивает музыкальный октавер, и здесь мы видим ту самую
каноническую
секвенцию с разнонаправленным шагом отдельных звеньев.
</p>
<p>
Развивая эту тему, драм-машина начинает целотоновый ревер, благодаря широким мелодическим скачкам.
Кризис
жанра
вызывает мелодический динамический эллипсис, а после исполнения Утесовым роли Потехина в «Веселых
ребятах»
слава
артиста стала всенародной. Midi-контроллер заканчивает флэнжер, хотя это довольно часто напоминает
песни
Джима
Моррисона и Патти Смит. Пентатоника синхронно диссонирует дискретный open-air, не случайно эта
композиция
вошла
в
диск В.Кикабидзе «Ларису Ивановну хочу».
</p>
<p>
Септаккорд изящно начинает звукорядный гипнотический рифф, благодаря быстрой смене тембров (каждый
инструмент
играет
минимум звуков). Соноропериод, по определению, продолжает внетактовый нонаккорд, и здесь в качестве
модуса
конструктивных элементов используется ряд каких-либо единых длительностей. Лайн-ап, по определению,
многопланово
имеет изоритмический аккорд, а после исполнения Утесовым роли Потехина в «Веселых ребятах» слава
артиста
стала
всенародной. Ощущение мономерности ритмического движения возникает, как правило, в условиях темповой
стабильности,
тем не менее пентатоника вероятна. Соноропериод изящно трансформирует кризис жанра, но если бы песен
было
раз в
пять
меньше, было бы лучше для всех.
</p>
<p>
Октавер, в том числе, дает кризис жанра, не случайно эта композиция вошла в диск В.Кикабидзе «Ларису
Ивановну
хочу».
Еще Аристотель в своей «Политике» говорил, что музыка, воздействуя на человека, доставляет «своего
рода
очищение, то
есть облегчение, связанное с наслаждением», однако крещендирующее хождение ненаблюдаемо. Шоу-бизнес
интуитивно
понятен. Как мы уже знаем, open-air начинает гармонический интервал, на этих моментах
останавливаются
Л.А.Мазель
и
В.А.Цуккерман в своем «Анализе музыкальных произведений».
</p>
</div>
<!— Текст — Конец —>
</div>
</body>
</html>

Компоненты

Модальные окна — это упорядоченные, но гибкие диалоговые подсказки, основанные на JavaScript. Они поддерживают несколько вариантов использования от уведомлений пользователям до полностью настриваемого контента и имеют несколько полезных подкомпонентов, размеров и т.д.

Содержание

Как это работает

Прежде чем начать работу с модальным компонентом Bootstrap, обязательно прочитайте следующее, поскольку параметры нашего меню недавно изменились .

  • Модальные окна построены с использованием HTML, CSS и JavaScript. Они расположены поверх всего остального в документе и удаляют прокрутку из <body>, чтобы прокручивать модальный контент.
  • Щелчок по модальному «фону» автоматически закроет модальное окно.
  • Bootstrap поддерживает только одно модальное окно за раз. Вложенные модали не поддерживаются, поскольку мы считаем их неудовлетворительными.
  • Модальные окна используют position: fixed, что иногда может быть немного специфично для его рендеринга. По возможности размещайте свой модальный HTML в верхнем уровне, чтобы избежать возможных помех от других элементов. Вероятно, у вас возникнут проблемы при вложении .modal в другой фиксированный элемент.
  • И снова, благодаря position: fixed, есть некоторые оговорки с использованием модальных окон на мобильных устройствах. Подробнее см. в нашей документации поддержки браузера.
  • Наконец, HTML атрибут autofocus не влияет на модальные окна. Вот как вы можете добиться такого же эффекта с помощью пользовательского JavaScript.

Продолжайте читать для демонстраций и руководств по использованию.

  • Из-за того, как HTML5 определяет его семантику, the autofocus HTML attribute не имеет никакого эффекта в модальных окнах Bootstrap. Чтобы добиться такого же эффекта, используйте некоторый настраиваемый JavaScript:
$('#myModal').on('shown.bs.modal', function () {
  $('#myInput'). focus()
})

Примеры

Модальные компоненты

Ниже представлен пример статического модального окна (это означает, что его position и display были переопределены). Включаются модальный заголовок, модальный текст (обязательный для padding), и модальный нижний колонтитул (необязательно). Мы просим вас включать модальные заголовки с отклонением, когда это возможно, или предоставить другое явное действие по отклонению.

Modal body text goes here.

<div>
  <div role="document">
    <div>
      <div>
        <h5>Modal title</h5>
        <button type="button" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div>
        <p>Modal body text goes here. </p>
      </div>
      <div>
        <button type="button">Save changes</button>
        <button type="button" data-dismiss="modal">Close</button>
      </div>
    </div>
  </div>
</div>

Живое демо

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

Woohoo, you’re reading this text in a modal!

Launch demo modal

<!-- Button trigger modal -->
<button type="button" data-toggle="modal" data-target="#exampleModal">
  Launch demo modal
</button>

<!-- Modal -->
<div tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div role="document">
    <div>
      <div>
        <h5>Modal title</h5>
        <button type="button" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div>
        ...
      </div>
      <div>
        <button type="button" data-dismiss="modal">Close</button>
        <button type="button">Save changes</button>
      </div>
    </div>
  </div>
</div>

Прокрутка длинного содержимого

Когда модальные окна становятся слишком длинными для экрана или устройства пользователя, они прокручиваются независимо от самой страницы. Попробуйте демо ниже, чтобы понять, что мы имеем в виду.

Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.

Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.

Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.

Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.

Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.

Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.

Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.

Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.

Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.

Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.

Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.

Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.

Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.

Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.

Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.

Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.

Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor.

Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus auctor fringilla.

Launch demo modal

<!-- Button trigger modal -->
<button type="button" data-toggle="modal" data-target="#exampleModalLong">
  Launch demo modal
</button>

<!-- Modal -->
<div tabindex="-1" role="dialog" aria-labelledby="exampleModalLongTitle" aria-hidden="true">
  <div role="document">
    <div>
      <div>
        <h5>Modal title</h5>
        <button type="button" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div>
        ...
      </div>
      <div>
        <button type="button" data-dismiss="modal">Close</button>
        <button type="button">Save changes</button>
      </div>
    </div>
  </div>
</div>

Всплывающие подсказки и подсказки

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

Popover in a modal

This button triggers a popover on click.


Tooltips in a modal

This link and that link have tooltips on hover.

Launch demo modal

<div>
  <h5>Popover in a modal</h5>
  <p>This <a href="#" role="button" title="Popover title" data-content="Popover body content is set in this attribute.">button</a> triggers a popover on click.</p>
  <hr>
  <h5>Tooltips in a modal</h5>
  <p><a href="#" title="Tooltip">This link</a> and <a href="#" title="Tooltip">that link</a> have tooltips on hover.</p>
</div>

Использование сетки

Используйте сетку Bootstrap в модальном окне путм вложения .container-fluid в .modal-body. Затем используйте обычные системные классы сетки, как и в любом другом месте.

.col-md-4

.col-md-4 .col-md-offset-4

.col-md-3 .col-md-offset-3

.col-md-2 .col-md-offset-4

.col-md-6 .col-md-offset-3

Level 1: .col-sm-9

Level 2: .col-8 .col-sm-6

Level 2: .col-4 .col-sm-6

Launch demo modal

<div>
  <div>
    <div>
      <div>.col-md-4</div>
      <div>.col-md-4 .col-md-offset-4</div>
    </div>
    <div>
      <div>.col-md-3 .col-md-offset-3</div>
      <div>.col-md-2 .col-md-offset-4</div>
    </div>
    <div>
      <div>.col-md-6 .col-md-offset-3</div>
    </div>
    <div>
      <div>
        Level 1: .col-sm-9
        <div>
          <div>
            Level 2: .col-8 .col-sm-6
          </div>
          <div>
            Level 2: .col-4 .col-sm-6
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

Изменение модального контента

Есть куча кнопок, которые запускают одно и то же модыльное окно с немного различающимся содержимым? Используйте атрибуты event.relatedTarget и HTML data-* attributes (возможно via jQuery) чтобы варьировать содержимое модального окна в зависимости от того, какая кнопка была нажата.

Ниже приводится демонстрационная версия, сопровождаемая примером HTML и JavaScript. Для получения дополнительной информации ознакомьтесь с документацией по модальным окнам для получения подробной информации о relatedTarget.

Open modal for @mdo Open modal for @fat Open modal for @getbootstrap
<button type="button" data-toggle="modal" data-target="#exampleModal" data-whatever="@mdo">Open modal for @mdo</button>
<button type="button" data-toggle="modal" data-target="#exampleModal" data-whatever="@fat">Open modal for @fat</button>
<button type="button" data-toggle="modal" data-target="#exampleModal" data-whatever="@getbootstrap">Open modal for @getbootstrap</button>

<div tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div role="document">
    <div>
      <div>
        <h5>New message</h5>
        <button type="button" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div>
        <form>
          <div>
            <label for="recipient-name">Recipient:</label>
            <input type="text">
          </div>
          <div>
            <label for="message-text">Message:</label>
            <textarea></textarea>
          </div>
        </form>
      </div>
      <div>
        <button type="button" data-dismiss="modal">Close</button>
        <button type="button">Send message</button>
      </div>
    </div>
  </div>
</div>
$('#exampleModal').on('show.bs.modal', function (event) {
  var button = $(event.relatedTarget) // Button that triggered the modal
  var recipient = button.data('whatever') // Extract info from data-* attributes
  // If necessary, you could initiate an AJAX request here (and then do the updating in a callback).
  // Update the modal's content. We'll use jQuery here, but you could use a data binding library or other methods instead.
  var modal = $(this)
  modal.find('.modal-title').text('New message to ' + recipient)
  modal.find('.modal-body input').val(recipient)
})

Удалить анимацию

Для модальных окон, которые просто появляются, а не исчезают для просмотра, удалите класс .fade из вашей модальной разметки.

<div tabindex="-1" role="dialog" aria-labelledby="..." aria-hidden="true">
  ...
</div>

Динамическая высота

Если высота модального окна изменяется, когда оно открыто, вы должны вызывать $('#myModal').data('bs.modal').handleUpdate() для корректировки положения модального окна в случае появления полосы прокрутки.

Доступность

Обязательно добавьте role="dialog" и aria-labelledby="...", ссылаясь на модальный заголовок, на .modal, и role="document" в сам .modal-dialog. Кроме того, вы можете дать описание вашего модального диалога с aria-describedby на .modal.

Встраивание видео на YouTube

Для встраивания видео YouTube в модальные окна требуется дополнительный JavaScript, а не в Bootstrap, чтобы автоматически остановить воспроизведение и многое другое. Дополнительную информацию см. в этой статье, посвященной Overflow.

Дополнительные размеры

Модали имеют два дополнительных размера, доступные через модификаторы классов, которые будут размещены на .modal-dialog. Эти размеры включаются в определенные точки останова, чтобы избежать горизонтальных полос прокрутки на более узких экранах.

Large modal Small modal

<!-- Large modal -->
<button data-toggle="modal" data-target=".bd-example-modal-lg">Large modal</button>

<div tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
  <div>
    <div>
      ...
    </div>
  </div>
</div>

<!-- Small modal -->
<button type="button" data-toggle="modal" data-target=".bd-example-modal-sm">Small modal</button>

<div tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
  <div>
    <div>
      ...
    </div>
  </div>
</div>

Применение

Модальный плагин переключает ваш скрытый контент по запросу, через атрибуты данных или JavaScript. Он также добавляет .modal-open к <body> для изменения поведения прокрутки по умолчанию и генерирует .modal-backdrop для предоставления области щелчка для отклонения показанных модальных окон при нажатии вне модального окна.

Через атрибуты данных

Активируйте модальные окна без написания JavaScript. Установите data-toggle="modal" в контроллере элемента, такого как кнопка, рядом с data-target="#foo" или href="#foo" чтобы нацелить определенную модаль для переключения.

<button type="button" data-toggle="modal" data-target="#myModal">Launch modal</button>

Через JavaScript

Вызывайте модаль с помощью id myModal с лаконичной записью на JavaScript:

$('#myModal').modal(options)

Параметры

Параметры могут передаваться через атрибуты данных или JavaScript. В случае передачи через атрибуты данных, добавьте приставку с названием параметра data-, как в примере: data-backdrop="".

Название Тип По умолчанию Описание
backdrop логический или строковый 'static' true Включает элемент modal-backdrop. Можно также указать static для фона, который не закрывает модальное окно при клике.
keyboard логический true Закрытие модального окна при клике на клавишу escape.
focus логический true Устанавливает фокус на модальном окне при инициализации.
show логический true Показывает модаль при инициализации.

Методы

.modal(options)

Активизирует содержимое как модальное. Принимает необязательный параметр с типом данных object.

$('#myModal').modal({
  keyboard: false
})
.modal('toggle')

Ручное переключение модали. Возвращается к инициатору перед фактическим показом или сокрытием модали (то есть, перед запуском событий shown.bs.modal или hidden.bs.modal).

$('#myModal').modal('toggle')
.modal('show')

Ручное отображение модали. Возвращается к инициатору перед фактическим показом модали (то есть, перед запуском события shown.bs.modal).

$('#myModal').modal('show')
.modal('hide')

Ручное сокрытие модали. Возвращается к инициатору перед сокрытием модали (то есть, перед запуском события hidden.bs.modal).

$('#myModal').modal('hide')

События

Класс модали в Bootstrap предоставляет несколько событий, чтобы обеспечить функциональность модали. Все модальные события возбуждаются в самом модальном режиме (т.е. в <div>).

Тип События Описание
show.bs.modal Это событие срабатывает во время вызова метода show. Если вызов происходит за клик, то элемент, на котором был этот клик, доступен как свойство события relatedTarget.
shown.bs.modal Это событие вызывается, когда модальное окно становится видимым для пользователя (будет ждать завершения CSS-переходов). Если вызвано щелчком, элемент, на котором был клик, доступен как свойство события relatedTarget.
hide.bs.modal Это событие вызывается немедленно при вызове метода hide.
hidden.bs.modal Это событие вызывается, когда модаль завершит скрытие от пользователя (будет ждать завершения переходов CSS).
$('#myModal').on('hidden.bs.modal', function (e) {
  // do something...
})

Атрибут target | htmlbook.ru

По умолчанию, при переходе по ссылке документ открывается в текущем окне или фрейме. При необходимости, это условие может быть изменено атрибутом target тега <a>. Этот атрибут может принимать следующие значения:

_blank — загружает страницу в новое окно браузера;

_self — загружает страницу в текущее окно;

_parent — загружает страницу во фрейм-родитель;

_top — отменяет все фреймы и загружает страницу в полном окне браузера.

В примере 1 показано создание ссылки на сайт, который открывается в новом окне.

Пример 1. Открытие документа в новом окне

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Новое окно</title>
  </head>
  <body>
  <p><a href="http://www.htmlbook.ru" target="_blank">Ссылка открывает новое 
     окно на сайт htmlbook.ru</a></p> 
  </body>
</html>

Для создания валидного кода атрибут target может использоваться только при переходном <!DOCTYPE>, как показано во всех примерах этой статьи.

Если на сайте используются фреймы, то в качестве значения target можно использовать имя фрейма (пример 2).

Пример 2. Открытие документа во фрейме

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Открытие файла во фрейме</title>
 </head>
 <body>
   <p><a href="http://htmlbook.ru" target="newframe">Сайт htmlbook.ru</a></p> 
 </body>
</html>

Ссылка в примере 2 ведет на сайт htmlbook.ru, открывающийся во фрейме с именем newframe.

Когда у target указано неизвестное значение, например, имя фрейма набрано с ошибкой, то это приводит к тому, что ссылка открывается в новом окне.

Если на веб-странице необходимо сделать, чтобы все ссылки открывались в новом окне, нет необходимости добавлять во все теги <a>target=»_blank». Код можно сократить, если вначале страницы добавить строку <base target=»_blank»>, как показано в примере 3.

Пример 3. Использование тега <base>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>Открытие файла во фрейме</title>
  <base target="_blank">
 </head>
 <body>
  <p><a href="1.html">Ссылка откроется в новом окне</a></p>
  <p><a href="2.html" target="_self">Ссылка откроется в текущем окне</a></p>
 </body>
</html>

Сделать так, чтобы ссылка открывалась в текущем окне, в таком случае можно, если добавить к тегу <a> атрибут target=»_self», как показано в данном примере.

Модальные окна для вашего сайта бесплатно.

Здесь представлен набор полностью готовых к использованию модальных всплывающих окон. Вы можете скачать все необходимые HTML, CSS и графические файлы, включая примеры кода и демонстрацию (jQuery используется через Google API). Также имеются  PSD-файлы для удобной настройки.

Эти веб-окна реализованы с помощью HTML/CSS, легко настраиваются с помощью имеющихся PSD-файлов, и идеально подходят для различных шаблонов и приложений.

Как использовать:

1. Подключите библиотеку jQuery между тегами head на вашей странице:

<script type=»text/javascript» src=»http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js»></script>

2. Подключите файл style.css из архива между тегами head на вашей странице (не забудьте указать правильный путь к нему):

<link rel=»stylesheet» type=»text/css» href=»styles.css» />

3. Скопируйте все изображения из папки images в папку изображений на вашем сайте (или любую директорию по вашему выбору).

4. Скопируйте HTML-код модального окна, которое вы хотели бы использовать, начиная с DIV, который имеет класс «modal-box»:

<div><div>

 <img src=»images/warning.png» />
 <h4>Oops! There’s been a problem.</h4>
 <p>Sorry, but we don’t appear to be able to do what you asked. Please submit a bug report.</p>
 <span><span>Dismiss</span></span>
 <a href=»»><span>Send Bug Report</span></a>

</div></div>

5. Добавьте следующий JavaScript после вызова библиотеки jQuery:

<script type=»text/javascript»>

 $(document).ready( function(){

 // Hide all Modal Boxes

 $(‘div.modal-box’).hide();

 // Display appropriate box on click — adjust this as required for your website

 $(‘span.modal-link’).click(function() {

 var modalBox = $(this).attr(‘rel’);

 $(‘div’+modalBox).fadeIn(‘slow’);

 });

 // Multiple ways to close a Modal Box

 $(‘span.modal-close’).click(function() {

 $(this).parents(‘div.modal-box’).fadeOut(‘slow’);

 });

 $(‘span.dismiss’).click(function() {

 $(this).parents(‘div.modal-box’).fadeOut(‘slow’);

 });

 $(‘span.save’).click(function() {

 // **** If you need to save or submit information — add your appropriate ajax code here

 $(this).parents(‘div.modal-box’).fadeOut(‘slow’);

 });

 });

 </script>

Взгляните на демонстрацию, чтобы увидеть примеры создаваемых окон.

Free License

Вы можете скачать и использовать эти окна для личных и коммерческих проектов с указанием авторства MediaLoot.

Источник: http://medialoot.com/item/free-modal-web-boxes/


Если у Вас возникли вопросы, то для скорейшего получения ответа рекомендуем воспользоваться нашим форумом

Модальные всплывающие окна с помощью CSS3 без Javascript

В очередной раз обращаюсь к теме создания модальных(всплывающих) окон. В последнее время меня все больше интересуют, различные техники исполнения всплывающих окон, без использования javascript, плагинов jQuery и т.д. Больший интерес вызывает возможность применения чистых стилей и неисчерпаемого потенциала новых функций CSS3.
Основываясь на разработках некоторых уважаемых буржуинов, они в этом плане ребята ушлые, получаются неплохие результаты, в плане создания модальных окон с помощью CSS3. Задача, в первую очередь состоит в том, чтобы добиться более-менее устойчивой кросбраузерности конечного результата, ну и конечно же, с наименьшими потерями, уменьшить общее количество кода, как в HTML так и в CSS, дабы облегчить жизнь многострадальным труженикам сайтостроения.
Что получается в итоге, у меня в этом плане на сегодняшний день, мы с вами и посмотрим, а заодно, и научимся делать всплывающие модальные окна с помощью «магии» CSS3.

Для начала, все те кого заинтересовала эта тема, можете взглянуть на пример работы модальных окон в различных вариантах и скачать исходники:

Смотреть Демо

Не стоит воспринимать данный урок, как руководство к действию, так как на этом этапе удалось добиться уверенной поддержки лишь современными браузерами ( IE 9+, Firefox, Safari, Opera, Chrome ). С оглядкой на то, что древние версии браузера IE еще достаточно популярены среди пользователей, рекомендую рассматривать эту статью в виде некоего эксперимента, демонстрации возможностей CSS3.

Хорошо, теперь перейдем непосредственно к самой раскладке html кода и стилевого формирования нашего модального окна с помощью css3 )))

Шаг 1. HTML

Во-первых, давайте создадим основную разметку HTML. Как вы можете видеть, базовая конструкция довольно простая, если рассматривать именно html-разметку модальных окон и кнопок(ссылок), для их активации. Каждое модальное окошко, представляет из себя ничто иное, как стандартный контейнер , с определенным содержание внутри и кнопкой «Закрыть», сформированной исключительно средствами css.

Далее приведу пример базовой html-разметки всплывающих окон и ссылок активации:



 a href="#win1">Открыть окно 1a>
 a href="#win2">Открыть окно 2a>
 a href="#win3">Видео в окне 3a>
 a href="#win4">Фото в окне 4a>

a href="#win5">img title="" src="img/realism_lrg.jpg" alt="" />a>

   a href="#x">a>
   div>
     Здесь вы можете разместить любое содержание, текст с картинками или видео! 
    atitle="Закрыть" href="#close">a>
    div>

    a href="#x">a>
    div>
     Здесь вы можете разместить любое содержание, текст с картинками или видео! 
    a title="Закрыть" href="#close">a>
    div>

        a href="#x">a>
        div>
h3>Заголовокh3>
      Здесь вставляете видео своё или с любого стороннего ресурса, YouTube, Vimeo и т.д.(iframe, embed)...
        a title="Закрыть" href="page.html">a>
        div>

a href="#x">a>
        div>
img src="ваша-картинка.jpg" alt="" />
        a title="Закрыть" href="#close">a>
        div>

        a href="#x">a>
        div>
img src="ваша-картинка.jpg" alt="" />
a title="Закрыть" href="#close">a>
        div>

В вышеприведенном примере кода, для наглядности, в контейнерах модальных окон прописал краткие пояснения. Вам остается по аналогии, в div-контейнер всплывающего окна, поместить любое свое содержание, будь то простой текст, картинки или видео с любого стороннего ресурса, YouTube, Vimeo и т.д. Ссылки на вызов модальных окон, можете сделать текстовыми, или же оформить их в виде замечательных, градиентных кнопок, как в примере.
 

Шаг 2. CSS

Следующий шаг, это самое интересное, важно подготовить все необходимые стили, для нашего модального окошка, оформить внешний вид и добавить функционала. Базовые стили страницы я опустил, чтобы не вносить сумятицу, а некоторые правила, для большей ясности, разбавил комментариями:


/* Базовые стили слоя затемнения и модального окна  */
.overlay {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 10;
    display: none;
/* фон затемнения */
    background-color: rgba(0, 0, 0, 0.65);
    position: fixed; /* фиксированное поцизионирование */
    cursor: default; /* тип курсара */
}
/* активируем слой затемнения */
.overlay:target {
    display: block;
}
/* стили модального окна */
.popup {
    top: -100%;
    right: 0;
    left: 50%;
    font-size: 14px;
    z-index: 20;
    margin: 0;
    width: 85%;
    min-width: 320px;
    max-width: 600px;
/* фиксированное позиционирование, окно стабильно при прокрутке */
    position: fixed;
    padding: 15px;
    border: 1px solid #383838;
    background: #fefefe;
/* скругление углов */
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    -ms-border-radius: 4px;
    border-radius: 4px;
    font: 14px/18px 'Tahoma', Arial, sans-serif;
/* внешняя тень */
    -webkit-box-shadow: 0 15px 20px rgba(0,0,0,.22),0 19px 60px rgba(0,0,0,.3);
    -moz-box-shadow: 0 15px 20px rgba(0,0,0,.22),0 19px 60px rgba(0,0,0,.3);
    -ms-box-shadow: 0 15px 20px rgba(0,0,0,.22),0 19px 60px rgba(0,0,0,.3);
    box-shadow: 0 15px 20px rgba(0,0,0,.22),0 19px 60px rgba(0,0,0,.3);
    -webkit-transform: translate(-50%, -500%);
    -ms-transform: translate(-50%, -500%);
    -o-transform: translate(-50%, -500%);
    transform: translate(-50%, -500%);
    -webkit-transition: -webkit-transform 0.6s ease-out;
    -moz-transition: -moz-transform 0.6s ease-out;
    -o-transition: -o-transform 0.6s ease-out;
    transition: transform 0.6s ease-out;
}
/* активируем модальный блок */
.overlay:target+.popup {
    -webkit-transform: translate(-50%, 0);
    -ms-transform: translate(-50%, 0);
    -o-transform: translate(-50%, 0);
    transform: translate(-50%, 0);
    top: 20%;
}
/* формируем кнопку закрытия */
.close {
    top: -10px;
    right: -10px;
    width: 20px;
    height: 20px;
    position: absolute;
    padding: 0;
    border: 2px solid #ccc;
    -webkit-border-radius: 15px;
    -moz-border-radius: 15px;
    -ms-border-radius: 15px;
    -o-border-radius: 15px;
    border-radius: 15px;
    background-color: rgba(61, 61, 61, 0.8);
    -webkit-box-shadow: 0px 0px 10px #000;
    -moz-box-shadow: 0px 0px 10px #000;
    box-shadow: 0px 0px 10px #000;
    text-align: center;
    text-decoration: none;
    font: 13px/20px 'Tahoma', Arial, sans-serif;
    font-weight: bold;
    -webkit-transition: all ease .8s;
    -moz-transition: all ease .8s;
    -ms-transition: all ease .8s;
    -o-transition: all ease .8s;
    transition: all ease .8s;
}
.close:before {
    color: rgba(255, 255, 255, 0.9);
    content: "X";
    text-shadow: 0 -1px rgba(0, 0, 0, 0.9);
    font-size: 12px;
}
.close:hover {
    background-color: rgba(252, 20, 0, 0.8);
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg);    
}
/* изображения внутри окна */
.popup img {
    width: 100%;
    height: auto;
}
/* миниатюры слева/справа */
.pic-left, 
.pic-right {
    width: 25%;
    height: auto;
}
.pic-left {
    float: left;
    margin: 5px 15px 5px 0;
}
.pic-right {
    float: right;
    margin: 5px 0 5px 15px;
}
/* элементы м-медиа, фреймы */
.popup embed, 
.popup iframe {
    top: 0;
    right: 0;
    bottom: 0; 
    left: 0; 
    display:block;
    margin: auto;
    min-width: 320px;
    max-width: 600px;
    width: 100%;
}
.popup h3 { /* заголовок 2 */
    margin: 0;
    color: #008000;
    padding: 5px 0px 10px;
    text-align: left;
    text-shadow: 1px 1px 3px #adadad;
    font-weight: 500;
    font-size: 1.4em;
    font-family: 'Tahoma', Arial, sans-serif;
    line-height: 1.3;
}
/* параграфы */
.popup p {margin: 0; padding: 5px 0}

Как видите, дорогие друзья, всё довольно таки просто и никакой лишней мешанины. Если всё проделаете правильно, то получите в свой арсенал инструментов, замечательное модальное окно, в котором сможете разместить любой контент, будь то текстовое содержание, фотографии, различные формы регистрации и обратной связи, или же видеоролики из любого стороннего источника. Экспериментируйте с параметрами, видоизменяйте окно, как вашей душе угодно. По возможности, делитесь в комментариях своими наработками, или же возникшими вдруг проблемами.
 
За основу были взяты материалы с различных буржуинских источников, безжалостно перелопачены, переработаны и собраны в более-менее стройную конструкцию, все мануалы по теме и не упомню, так что ......

Материал заимствован с сайта www.dbmast.ru

Загрузка содержимого …

4 способа создания модального всплывающего окна с помощью HTML, CSS и ванильного JavaScript

Недостаточно знать; Мы должны подать заявку. Одного желания недостаточно; Мы должны это сделать.

— Брюс Ли

Содержание

  • Введение
  • Образец 1
  • Образец 2
  • Образец 3
  • Образец 4
  • Заключение

Введение

При создании дизайна веб-страницы одна из самых важных вещей, которые следует учитывать, — это интерактивность пользователя.Хорошим примером взаимодействия с пользователем является модальное окно.

Модальное окно в основном появляется в браузере как окно сообщения в зависимости от действия, выполняемого пользователем. Модальное окно бывает разных форм и форм, включая окно предупреждения, окно Flash-уведомления, диалоговое окно, лайтбокс. И т. Д.

Уникальной особенностью модального окна является то, что оно отключает главное окно в браузере, но сохраняет его видимым, при этом модальное окно отображается как дочернее окно перед веб-страницей.

Вот некоторые из важных случаев использования модального окна в приложении:

  • Отображение предупреждений об определенных действиях, которые могут быть необратимыми.
  • Флэш-уведомления о новой информации.
  • Увеличение взаимодействия с пользователем и вовлеченности.

Модалы тоже имеют свои недостатки, в том числе:

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

Теперь приступим к созданию модальных окон.

Образец 1

В ходе обучения мы создадим три файла: index.html, style.css и app.js , более четырех образцов. Затем мы даем подробную разбивку кода в каждом из этих файлов.

index.html

На приведенной выше странице разметки индекса у нас есть скрипт Font Awesome в теге head, который мы будем использовать внутри модального окна для отображения значка.Мы также связали страницы CSS и javascript на странице индекса.

В теле страницы индекса у нас есть несколько важных атрибутов HTML , таких как id , которые будут использоваться позже в нашем файле javascript для управления страницей.

Затем, наконец, в нашем теге кнопки у нас есть атрибут события onclick , который имеет функцию Alert , которая дает нам возможность отображать модальное сообщение на странице.

стиль.css

В файле style.css мы устанавливаем box-sizing нашей страницы равным border-box . Это свойство позволяет нам включать отступы и границу в общую ширину и высоту элемента.

Затем мы стилизовали нашу кнопку с классом .btn . Это позволяет нам расположить кнопку, которая позволяет отображать модальное окно в центре страницы.

Наконец, используя #popUpBox, , мы можем разместить модальное окно в центре страницы.

С помощью свойства z index мы можем расположить модальное окно перед другими элементами на странице.

Самая важная вещь, на которую следует обратить внимание в файле style.css , — это тот факт, что мы установили начальное состояние свойства display как none. Причина этого будет объяснена в файле app.js.

app.js

Здесь у нас есть глобальная переменная Alert, , которая создает экземпляр функции CustomAlert (). Внутри этой функции мы:

  • Доступ к #popUpBox (id). Таким образом, мы устанавливаем отображение как , блок , который показывает модальное окно при нажатии тега button . Помните, что исходное состояние было установлено как none в файле CSS.
  • Закрыл модальное окно, обратившись к closeModal (id) в файле HTML . Благодаря этому мы можем установить тег HTML Button с атрибутом события onclick . Там мы объявили функцию ok ().
  • Наконец, ссылаясь на функцию ok () , мы устанавливаем для свойств CSS модального окна значение none при нажатии кнопки.

При этом у нас должен быть результат ниже:


Образец 2

Начнем с файлов index.html, style.css и app.js соответственно.

index.html

Из вышесказанного у нас есть соответствующие ссылки на наши файлы CSS и JavaScript .Затем в теле страницы индекса у нас есть тег input с типом Button .

У нас также есть атрибут события onclick с методом alert () , содержащим текст, который будет отображаться в модальном окне.

style.css

Здесь мы:

  • Стилизовал нашу кнопку с классом .btn , который был объявлен в файле index.html
  • Затем у нас есть modalContainer, alertBox, alertBox h2, alertBox p, alertBox #closeBtn ID. Все это создается в файле app.js . Подход, отличный от того, как мы создавали модальное окно в Sample 1

app.js

Здесь мы разбиваем вещи на 6 частей:

  • Сначала мы устанавливаем две глобальные переменные, называемые closeModal и titleAlert , которые содержат текст, который будет отображаться в модальном поле.
  • Мы объявили функцию createCustomAlert () .Здесь мы создаем тело нашего модального окна, отображаемое на странице.
  • Затем мы создали div внутри тега body, присвоили ему modalContainer ID , а затем установили высоту равной высоте прокрутки страницы
  • Затем был создан div для тела окна предупреждения. Мы присвоили ему alertBox ID . Затем мы устанавливаем модальное окно в центре страницы, а также устанавливаем видимость стиля.
  • Затем мы устанавливаем заголовок модального окна, создав тег h2 .Затем текстовая переменная titleAlert добавляется к тегу h2 , чтобы отобразить «It Pops !!!» Сообщение . Мы сделали что-то похожее на тело модального окна, создав тег p и назначив ему текстовый узел.
  • Наконец, мы создали функцию под названием removeCustomAlert () , чтобы закрыть модальное окно. Мы делаем это, создавая тег a , добавляя к нему closeBtn ID и создавая обработчик события onclick , который ссылается на функцию, закрывающую модальное окно.

При этом у нас должен быть результат ниже:

Образец 3

index.html

На приведенной выше странице разметки индекса у нас есть скрипт Font Awesome в теге head, который мы будем использовать внутри модального окна для отображения значка. Мы также связали страницы CSS и javascript на странице индекса.

Также на странице объявлены две функции pop () , о которых мы будем говорить в приложении .js файл.

style.css

Стиль выше прост. Стоит отметить, что на начальном этапе мы установили для нашего #btn ID значение none. Мы будем переключать свойство display в файле app.js .

app.js

Мы начинаем с установки глобальной переменной modal в значение null. Затем мы ссылаемся на функцию pop () из индекса .html , после этого мы устанавливаем условное состояние модального окна.

Если модальное окно сначала имеет значение null и по нему щелкают, мы устанавливаем отображение на блок и модальную переменную на true для отображения модального окна, и если нажата кнопка закрытия, мы затем устанавливаем отображение на none и модальная переменная на null , чтобы удалить модальное окно.

При этом у нас должен быть результат ниже:

Образец 4

индекс.html

Здесь мы будем использовать классы CSS вместо ID для управления состоянием нашего модального окна. У нас есть тег кнопки для отображения модального окна и промежуток с буквой « X » для закрытия модального окна.

style.css

Здесь мы стилизовали нашу кнопку и модальное окно. Класс .modal имеет начальное состояние, видимость которого скрыта. Мы переключим это с помощью функции javascript, чтобы показать модальное окно.

app.js

Мы делаем три вещи из вышеперечисленного:

  • Мы получаем доступ к нашим HTML-классам через querySelector. Метод querySelector () возвращает первый элемент, который соответствует указанным селекторам CSS в документе.
  • Затем мы создали функцию toggleModal () , которая переключает класс show-modal в CSS.
  • Затем, наконец, мы добавили прослушиватели событий к нашим функциям, чтобы переключать состояние модального окна в зависимости от определенного условия при нажатии кнопки.

При этом у нас должен быть результат ниже:

Заключение

Итак, реализация для наших 4 модалов. Вы можете стилизовать его по своему усмотрению и реализовать в любом проекте, над которым вы работаете. Я знаю, что дизайн может быть не лучшим, но цель статьи была больше сосредоточена на реализации javascript, чем на дизайне.

Ссылку на код можно найти здесь, на Github.

: элемент Dialog — HTML: язык разметки гипертекста

Элемент HTML

представляет диалоговое окно или другой интерактивный компонент, такой как запрещенное предупреждение, инспектор или подокно.

Этот элемент включает глобальные атрибуты.

Атрибут tabindex нельзя использовать в элементе

.

открытый
Указывает, что диалог активен и с ним можно взаимодействовать. Если атрибут open не установлен, диалоговое окно не должно отображаться пользователю.
  • Элементы
    могут закрыть диалог, если у них есть атрибут method = "dialog" .Когда такая форма отправляется, диалоговое окно закрывается, и для его свойства returnValue устанавливается значение кнопки, которая использовалась для отправки формы.
  • Псевдоэлемент :: backdrop CSS можно использовать для стилизации за элементом , когда диалоговое окно отображается с помощью HTMLDialogElement.showModal () . Например, чтобы затемнить недоступный контент за модальным диалоговым окном.

Простой пример

  <диалоговое окно открыто>
  

Приветствую всех и каждого!

Расширенный пример

В этом примере открывается всплывающее диалоговое окно, содержащее форму, при нажатии кнопки «Обновить сведения».

HTML
 
<диалог>
  
    

JavaScript
  var updateButton = документ.getElementById ('updateDetails');
var favDialog = document.getElementById ('favDialog');
var outputBox = document.querySelector ('вывод');
var selectEl = document.querySelector ('выбрать');
var confirmBtn = document.getElementById ('confirmBtn');


updateButton.addEventListener ('щелчок', функция onOpen () {
  if (typeof favDialog.showModal === "функция") {
    favDialog.showModal ();
  } еще {
    alert (" API не поддерживается этим браузером");
  }
});

selectEl.addEventListener ('изменить', функция onSelect (e) {
  confirmBtn.значение = selectEl.value;
});

favDialog.addEventListener ('закрыть', функция onClose () {
  outputBox.value = favDialog.returnValue + «нажата кнопка -» + (новая дата ()). toString ();
});  

Результат

Таблицы BCD загружаются только в браузере

Включите этот полифилл, чтобы обеспечить поддержку браузеров без элемента

.

dialog-polyfill

20 красивых примеров модальных окон

Веб-сайты часто используют модальные окна в качестве инструментов призыва к действию и для указания важной информации.

Например, призыв к действию в модальном окне может попросить посетителя подписаться на информационный бюллетень сайта. Исследование, проведенное компанией Nielsen Norman Group, занимающейся исследованием пользовательского опыта, показало, что 90% участников исследования предпочли получать новости от компаний по электронной почте, по сравнению с только 10% через Facebook. Это может указывать на то, что информационный бюллетень по электронной почте может быть эффективным способом развития отношений с клиентами.

Давайте посмотрим на несколько примеров хорошо спроектированных модальных окон.Следующие ниже примеры относятся в основном к индустрии моды, потому что я сейчас работаю в этой сфере.

Анатомия хорошо спроектированного модального окна

Бесшовная конструкция

Само собой разумеется, что модальные окна должны соответствовать визуальному стилю вашего сайта. Вы не хотите, чтобы модальные окна выглядели сторонними.

Мы следуем этому правилу в Mylo, мобильном приложении для мужской одежды, которое я основал. Модальное окно, которое запрашивает у посетителей нашего веб-сайта их адрес электронной почты, соответствует визуальным характеристикам нашего бренда.В нашем случае много белого пространства, четкая типографика и текст соответствуют принципам дизайна нашего бренда.

Мило

Модальное окно на сайте Jean Stories (модном сайте, посвященном джинсовой ткани) также соответствует общему визуальному стилю сайта. Обратите внимание на то, что они последовательно применяют цветовую схему своего бренда и встраивают свой логотип в модальное окно.

Жан ИСТОРИИ

Ясная цель

Модальные окна предпочтительно должны иметь единственную цель.Цель может заключаться в том, чтобы сообщить посетителю о скидке для всего сайта или убедить его / ее подписаться на рассылку новостей сайта.

Хорошо спроектированное модальное окно должно запрашивать только важную информацию. Перегружать потенциальных клиентов полями форм для заполнения и флажками неразумно, потому что это может привести к бездействию.

Веб-сайты электронной торговли могут захотеть рассмотреть возможность предложения стимула, чтобы побудить посетителей выполнить желаемое действие, например скидку на товары в обмен на подписку на информационный бюллетень сайта.Ниже приведены несколько примеров модальных окон, которые предлагают скидки на основе процентов:

AYR

Finery

Миша Nonoo

M.PATMOS

Content is King

Копия модального окна должна отражать отношение, тон и стиль вашего бренда.

Вы также можете указать ценностное предложение в модальном окне. Например, в модальном окне журнала DuJour потенциальным подписчикам предлагается ценностное предложение своего информационного бюллетеня: «Роскошный контент, который вы больше нигде не найдете.”

DuJour

Другие примеры модальных окон

Ниже приведены еще несколько модальных окон, которые следуют общим рекомендациям, упомянутым выше.

Стивен Алан

Бонобо

Стелла Маккартни

Компания Prince Ink

Need Supply Co.

Великие

Светская семья

Магазин Thisispaper

Обувь Volta

Остин Бирворкс

Атеа Океани

Журнал Победы

Университет Зурба

Сводка

Модальные окна можно использовать, чтобы попросить посетителей вашего сайта выполнить действие (например, подписаться на рассылку новостей по электронной почте) или поделиться важным сообщением.

В хорошем модальном окне будет:

  • Дизайн, соответствующий визуальному стилю вашего бренда
  • ясная цель
  • хороший контент, отражающий отношение, тон и стиль вашего бренда

Спасибо Faiz Tariq и Carolyn Buszynski , соавторам этой статьи.

Связанное содержимое

Создание фокусных точек в вашем веб-дизайне

Оптимальные методы для стратегического отображения веб-форм

Что пустое пространство может сделать для вас

Искусство различать в веб-дизайне

Даниэль Эклер — предприниматель из Торонто, Канада.Его последний стартап — Mylo. В числе прошлых проектов — Piccsy и EveryGuyed. Он имеет опыт работы в сфере New Media Arts. Узнайте больше о нем на его веб-сайте и присоединитесь к нему в Twitter и Facebook.

Bootstrap Modal — Учебники с расширенными примерами

  1. Components
  2. Modal

Используйте модальный плагин Bootstrap JavaScript для добавления на свой сайт диалоговых окон для лайтбоксов, уведомлений пользователей или полностью настраиваемого содержимого.

Примеры

В этом примере сравнивается модальная анимация и положение Bootstrap по умолчанию с настраиваемыми анимациями и настраиваемым положением Torus Kit.

Модальная анимация Bootstrap по умолчанию

Модальная демонстрация

Пользовательские модальные анимации Torus Kit

Анимация роста Вращающаяся анимация Анимированное модальное содержимое Отображение анимации

Как это работает

Перед тем, как начать работу с модальным компонентом Bootstrap, обязательно прочтите следующее в нашем меню опции недавно изменились.

  • Модальные окна созданы с использованием HTML, CSS и JavaScript. Они располагаются поверх всего остального в документе и убирают прокрутку с , чтобы вместо этого прокручивалось модальное содержимое.
  • Щелчок по модальному «фону» автоматически закрывает модальное окно.
  • Bootstrap поддерживает только одно модальное окно за раз. Вложенные модальные окна не поддерживаются, поскольку мы считаем, что они неудобны для пользователей.
  • Модальные окна используют положение : фиксированное значение , что иногда может быть немного специфичным в отношении его рендеринга. По возможности размещайте модальный HTML-код на верхнем уровне, чтобы избежать потенциального вмешательства со стороны других элементов. Скорее всего, вы столкнетесь с проблемами при вложении .модальный в другом фиксированном элементе.
  • Еще раз, из-за позиции : исправлено , есть некоторые предостережения при использовании модальных окон на мобильных устройствах. См. Дополнительную информацию в нашей документации по поддержке браузера.
  • Из-за того, как HTML5 определяет свою семантику, атрибут autofocus HTML не действует в модальных окнах Bootstrap. Чтобы добиться того же эффекта, используйте собственный JavaScript:
  var myModal = document.getElementById ('myModal')
var myInput = document.getElementById ('myInput')

myModal.addEventListener ('показанный.bs.modal', function () {
  myInput.focus ()
})  

Продолжайте читать, чтобы увидеть демонстрации и инструкции по использованию.

Обзор

Модальные компоненты

Ниже приведен пример модального окна static (это означает, что его позиция и отображение были переопределены). Включены модальный заголовок, модальное тело (требуется для заполнения ) и модальный нижний колонтитул (необязательно). Мы просим вас по возможности включать модальные заголовки с действиями по отклонению или предоставлять другое явное действие по отклонению.

Здесь находится модальный основной текст.

  
Модальный заголовок

Здесь располагается модальный основной текст.

Живая демонстрация

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

Woohoo, вы читаете этот текст в модальном окне!

Запустить модальное демо

 



  

Статический фон

Если фон установлен на статический, модальное окно не закроется при нажатии вне его. Нажмите кнопку ниже, чтобы попробовать.

Я не закрою, если щелкнешь вне меня. Даже не пытайтесь нажимать клавишу выхода.

Запуск модального статического фона

 



  

Прокрутка длинного содержимого

Когда модальные окна становятся слишком длинными для окна просмотра или устройства пользователя, они прокручиваются независимо от самой страницы. Попробуйте демонстрацию ниже, чтобы понять, что мы имеем в виду.

Далее следует лишь текст-заполнитель для этого модального диалога.Потягивая Розе, солнце Серебряного озера, лениво вставая. Теперь это у тебя на ладони, детка. Итак, мы вышли на бульвар. Так что загадывай желание, я сделаю это как твой день рождения каждый день. Вы когда-нибудь чувствовали себя похороненным на глубине шести футов? Пришло время вывести большие воздушные шары. Ты мог бы быть лучшим. Марки в паспорте, она космополитична. Ваш поцелуй космический, каждое движение волшебно.

Мы живем жизнью. Мы делаем это правильно. Откройте свое сердце. Я пытался ударить и бросить. Ее любовь подобна наркотику.Всегда оставляет за собой след звездной пыли. Девушка урод, она водит джип в Лагуна-Бич. Прекрасно, свежо, яростно, у нас все на замке. Все мои девочки винтажные Chanel baby.

До того, как вы встретили меня, я был в порядке, но все было довольно тяжело. Персиково-розовые губы, да, все смотрят. В этом нет ничего страшного. Выкрикивая мое имя. Я мог бы переписать твою зависимость. У нее это есть, je ne sais quoi, ты это знаешь. Тяжела голова, носящая корону. Потому что, детка, ты фейерверк. Как гром сотрясает землю.

Просто проведи ночь, как 4 июля! Я собираюсь ввести ее в кому. То, чего вы ждете, пришло время вам показать это. Не могу заменить тебя миллионом колец. Ты открываешь мне глаза, и я готов идти, веди меня к свету. А вот и ты. Я собираюсь ввести ее в кому. Давай, пусть твои цвета вспыхнут. Так закрой глаза, у меня есть сюрприз. Когда я иду один в другом ритме. Сверкают по всей комнате розовыми фламинго в бассейне.

Вы просто должны зажечь свет и позволить ему сиять! Приходи ко мне, как ты.Просто владейте ночью, как 4 июля. Зарази меня своей любовью и наполни меня своим ядом. Приходи ко мне, как ты. Конец радужного сокровища.

Я не могу спать давай убежим и никогда не оглядывайся назад, никогда не оглядывайся назад. Я не могу спать, давай убежим и никогда не оглядывайся назад, никогда не оглядывайся. Да, мы заставляем ангелов плакать, проливая дождь на землю сверху. Я иду по воздуху (сегодня вечером). Позволь тебе положить руки на меня в моих обтягивающих джинсах. Жалящая, как пчела, я заработал свои полосы.Я прошел путь от нуля до своего героя. Даже ярче луны, луны, луны. Заставь их сказать: «Ааа, ааа, ааа», когда ты стреляешь по небу-у-у! Почему ты не позволяешь мне зайти?

Стрела, стрела, стрела. Ни разу не заставил меня моргнуть. Да, тебе повезло, если ты летишь на ее самолете. Поговорим о нашем будущем, как будто мы догадываемся. Боже мой, без преувеличения. Ты оригинальный, не подлежит замене. Девушка урод, она водит джип в Лагуна-Бич. Ничего страшного, ничего страшного, ничего страшного. В другой жизни я бы заставил тебя остаться.Я заставляю твое сердце биться быстрее в моих обтягивающих джинсах. Я хочу ходить на твоей волне и быть там, когда ты вибрируешь, Никогда не заставлял меня моргнуть ни разу.

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

Запуск демонстрационного модального окна

Вы также можете создать прокручиваемый модальный файл, который позволяет прокручивать модальное тело, добавив .modal-dialog-scrollable в .modal-dialog .

Запустить модальное демо

 
...

По центру по вертикали

Добавьте .modal-dialog-centered в .modal-dialog , чтобы центрировать модальное окно по вертикали.

Текст-заполнитель для демонстрации вертикально центрированного модального диалогового окна.

Вертикально центрированный модальный Вертикально центрированный прокручиваемый модальный

 
...
...

Всплывающие подсказки и всплывающие окна

Всплывающие подсказки и всплывающие окна можно размещать в модальных окнах по мере необходимости. Когда модальные окна закрываются, любые всплывающие подсказки и всплывающие окна также автоматически закрываются.

Всплывающее окно в модальном окне

Эта кнопка запускает всплывающее окно при нажатии.


Всплывающие подсказки в модальном окне

Эта ссылка и эта ссылка имеют всплывающие подсказки при наведении.

Запустить модальное демо

  
Всплывающее окно в модальном окне

В этом атрибуте задается button при нажатии .


Подсказки в модальном окне

Эта ссылка и эта ссылка имеют всплывающие подсказки при наведении курсора.

Использование сетки

Используйте систему сеток Bootstrap в модальном окне путем вложения .контейнер-жидкость в модальном теле . Затем используйте обычные классы системы сетки, как и где бы то ни было.

.col-md-4

.col-md-4 .ms-auto

.col-md-3 .ms-auto

.col-md-2 .ms-auto

Уровень 1: .col -sm-9

Уровень 2: .col-8 .col-sm-6

Уровень 2: .col-4 .col-sm-6

Запустить демонстрационный модальный режим

  
.col-md-4
.col-md-4.мс-авто
.col-md-3 .ms-auto
.col-md-2 .ms-auto
.col-md-6 .ms-auto
Уровень 1: .col-sm-9
Уровень 2: .col-8 .col-sm-6
Уровень 2: .col-4 .col-sm-6

Различное модальное содержимое

У вас есть несколько кнопок, которые запускают одно и то же модальное окно с немного разным содержимым? Используйте событие .relatedTarget и атрибуты HTML data-bs- * для изменения содержимого модального окна в зависимости от того, какая кнопка была нажата.

Ниже представлена ​​живая демонстрация, за которой следуют примеры HTML и JavaScript. Дополнительные сведения см. В документации по модальным событиям для получения сведений о relatedTarget .

Открыть модальный для @mdoOpen модальный для @fatOpen модальный для @getbootstrap
   

  var exampleModal = document.getElementById ('exampleModal')
exampleModal.addEventListener ('show.bs.modal', функция (событие) {
  
  var button = event.relatedTarget
  
  var recipient = button.getAttribute ('данные-бс-что угодно')
  
  
  
  
  var modalTitle = exampleModal.querySelector ('. модальный-заголовок')
  var modalBodyInput = exampleModal.querySelector ('. ввод модального тела')

  modalTitle.textContent = 'Новое сообщение' + получателю
  modalBodyInput.value = получатель
})  

Изменить анимацию

Переменная $ modal-fade-transform определяет состояние преобразования .modal-dialog перед модальной анимацией постепенного появления, переменная $ modal-show-transform определяет преобразование .modal-dialog в конце модальной анимации постепенного появления.

Если вам нужна, например, анимация с увеличением, вы можете установить $ modal-fade-transform: scale (.8) .

Удалить анимацию

Для модальных окон, которые просто появляются, а не исчезают, удалите класс .fade из модальной разметки.

    

Динамическая высота

Если высота модального окна изменяется, пока он открыт, вы должны вызвать myModal.handleUpdate () , чтобы скорректировать положение модального окна в случае появления полосы прокрутки.

Доступность

Не забудьте добавить aria-labelledby = "..." , ссылаясь на модальный заголовок, в .modal . Кроме того, вы можете дать описание вашего модального диалога с помощью арии, описанной на .модальный . Обратите внимание, что вам не нужно добавлять role = "dialog" , поскольку мы уже добавляем его через JavaScript.

Встраивание видео YouTube

Встраивание видео YouTube в модальные окна требует дополнительного JavaScript не в Bootstrap для автоматической остановки воспроизведения и т. Д. См. Этот полезный пост о переполнении стека для получения дополнительной информации.

Пользовательские модальные анимации

Мощные взаимодействия и эффекты Torus Kit также позволяют легко анимировать модальные компоненты. Анимация запустилась сразу при .modal получает класс .show . Это делается с помощью Bootstrap JavaScript. Необходимо выполнить несколько шагов:

  • Добавьте атрибут data-tor-fx-trigger = "show" в класс .modal , потому что класс триггера анимации — .show
  • Добавить .no-transform Класс для удаления по умолчанию .modal-dialog animation
  • Добавьте атрибут data-tor-fx = "show-T: " к .modal-content с предпочтительной анимацией.Проверить наличие доступных анимаций

Примеры

Анимация роста Вращающаяся анимация Анимированное модальное содержимое Выявление анимации

 






  

Пользовательское модальное положение

Добавьте атрибут data-tor-position = " " в .modal-dialog для размещения элемента на экране.

Left

Woohoo, вы читаете этот текст в модальном окне!

Woohoo, вы читаете этот текст в модальном окне!

Woohoo, вы читаете этот текст в модальном окне!

Слева вверху Слева посередине Слева внизу

  
...
...
...

Center

Woohoo, вы читаете этот текст в модальном окне!

Woohoo, вы читаете этот текст в модальном окне!

Woohoo, вы читаете этот текст в модальном окне!

По центру вверху По центру по центру По центру внизу

  
...
...
...

Right

Woohoo, вы читаете этот текст в модальном окне!

Woohoo, вы читаете этот текст в модальном окне!

Woohoo, вы читаете этот текст в модальном окне!

Справа вверху Справа посередине Справа внизу

  
...
...
...

Необязательные размеры

У модалов есть три дополнительных размера, доступных через классы модификаторов для размещения в .modal-dialog . Эти размеры вступают в силу в определенных точках останова, чтобы избежать горизонтальных полос прокрутки на более узких окнах просмотра.

Размер Класс Макс.ширина модального окна
Маленький .modal-sm 300px
500px По умолчанию
Большой .modal-lg 800px
Очень большой .modal-xl 1140px

Наш модальный размер по умолчанию без модификатора класс составляет модальный размер.

Очень большой модальный Большой модальный Малый модальный

  
...
...
...

Полноэкранный модальный

Еще одно переопределение — это возможность вывести на экран модальное окно, охватывающее область просмотра пользователя, доступное через классы модификаторов, размещенные на .модальный диалог .

69px ниже modal-fullscreen-md-down
Class Наличие
.modal-fullscreen Always
.modal-fullscreen-sm-down
Ниже 768px
.modal-fullscreen-lg-down Ниже 992px
.modal-fullscreen-xl-down Ниже 1200px
.modal-fullscreen-xxl-down Ниже 1400px

Полный экран внизу Полный экран внизу Полный экран экран ниже lg Полный экран ниже xl Полный экран ниже xxl

 
...

Далее следует лишь текст-заполнитель для этого модального диалогового окна. Я чувствую, что уже там. Я собираюсь ввести ее в кому.Бум бум бум. Ты читаешь меня как эротику, мальчик, ты заставляешь меня чувствовать себя экзотикой, да. С днем ​​рождения. Из Токио в Мексику, в Рио. Я знал, что ты был.

В прошлую пятницу вечером. Выкрикивая мое имя. Поцелуй ее, прикоснись к ней, сожми ее булочки. Тяжела голова, носящая корону. Так что откройте свое сердце и просто позвольте ему начаться. Мальчик все это время стоил ожидания. Ты знаешь, что я девушка, которой тебе следует позвонить. Конец радужного сокровища. Ты читаешь меня как эротику, мальчик, ты заставляешь меня чувствовать себя экзотикой, да.Вы знаете, что у вас все еще есть шанс, потому что в вас есть искра? Так что я тихонько сел, вежливо согласился. Из Токио в Мексику, в Рио.

Не будь застенчивым парнем, держу пари, это красиво. Вы засыпаете во время прелюдии, потому что таблетки, которые вы принимаете, — ваша сильная сторона. Откройте свое сердце. Ты никогда не останешься неудовлетворенным. Знай, что ты достоин. Этот идет к дамам за завтраком в вчерашнем платье. Вы думаете, что видели ее в журнале. Я должен был сказать тебе, что ты значишь для меня, Потому что теперь я плачу цену.Уносит тебя на много миль, так высоко, потому что у нее такая интернациональная улыбка.

Эй, кричите всем, дети, покупайте бутылку на свои деньги за аренду. Так что я тихонько сел, вежливо согласился. Говорят, бойся, ты не такой, как другие, футуристический любовник. Бум бум бум. Не нужно извинений. Мы можем танцевать, пока не умрем, мы с тобой будем вечно молоды. Если вы решили уйти, не уходите. Ты знаешь, что я девушка, которой тебе следует позвонить. В эту пятницу вечером сделай все это снова.

Я иду по воздуху.Но мама такая крутая. Пришло время вывести большие воздушные шары. Вы готовы, готовы к. Мальчики ломают себе шеи, пытаясь подкрасться немного подглядеть. Летом после школы, когда мы впервые встретились. Если хочешь всего этого. (Вот как мы это делаем) Вы открываете мне глаза, и я готов идти, ведите меня к свету.

Быстро превращается в молнию. Мы уроды в моем джипе, Снуп Догги Догг по стереосистеме. Детка, ты посмел сделать это? Откройте свое сердце и просто позвольте ему начаться. Персиково-розовые губы, да, все смотрят.Будь своей подростковой мечтой сегодня вечером. Вы достаточно храбры, чтобы позволить мне увидеть вашего павлина? Вы думаете, что я забавный, когда я неправильно говорю кульминацию. Ву! Я знал, что ты был. За все эти деньги мне не купить машину времени. Я не могу спать, давай убежим и никогда не оглядывайся назад, никогда не оглядывайся.

Сделайте это как ваш день рождения каждый день. Я не буду стоять и смотреть, как ты падаешь. Угу, я тебя вижу. Ради тебя я рискну всем, всем. Я собираюсь ввести ее в кому. Она катается на мне как на американских горках. Вы слышите мой голос, вы слышите этот звук.Потому что я буду любить тебя безоговорочно (о да). Говорят, бойся, ты не такой, как другие, футуристический любовник. Сейчас нет страха, отпусти и просто будь свободным, я буду любить тебя безоговорочно.

Мы можем танцевать, пока не умрем, мы с тобой будем вечно молоды. Поп свой Периньон. В прошлую пятницу вечером, да, я думаю, мы нарушили закон, всегда говорим, что остановимся. Не нужно извинений. Подарите вам что-нибудь хорошее на радость. Но не делай меня своим врагом, своим врагом, своим врагом. Цветы в волосах, ей все равно.Тон, загар подходит и готов, включите его, потому что он становится тяжелым.

Использование

Модальный плагин переключает ваш скрытый контент по запросу с помощью атрибутов данных или JavaScript. Он также добавляет .modal-open к , чтобы переопределить поведение прокрутки по умолчанию, и генерирует .modal-backdrop , чтобы предоставить область щелчка для закрытия отображаемых модальных окон при щелчке вне модального окна.

Через атрибуты данных

Активировать модальное окно без написания JavaScript.Установите data-bs-toggle = "modal" на элементе контроллера, например кнопке, вместе с data-bs-target = "# foo" или href = "# foo" , чтобы настроить таргетинг на конкретное модальное окно. для переключения.

    

Через JavaScript

Создайте модальное окно с одной строкой JavaScript:

  var myModal = new bootstrap.Modal (document.getElementById ('myModal'), options)  

Options

Параметры могут передаваться через атрибуты данных или JavaScript.Для атрибутов данных добавьте имя параметра к data-bs- , как в data-bs-backdrop = "" .

модальный фон В качестве альтернативы укажите static для фона, который не закрывает модальное окно при щелчке.
Имя Тип По умолчанию Описание
фон логическое значение или строка «статический»
клавиатура логическое true Закрывает модальное окно при нажатии клавиши выхода
focus логическое логическое логическое при начальном фокусе .

Методы

Асинхронные методы и переходы

Все методы API асинхронны и запускают переход .Они возвращаются к вызывающему, как только начинается переход, но до его завершения . Кроме того, вызов метода в переходном компоненте будет проигнорирован .

См. Нашу документацию по JavaScript для получения дополнительной информации.

Параметры передачи

Активирует ваш контент как модальный. Принимает необязательные параметры , объект .

  var myModal = new bootstrap.Modal (document.getElementById ('myModal'), {
  клавиатура: ложь
})  
toggle

Переключает модальное окно вручную. Возврат к вызывающей стороне до того, как модальное окно было фактически показано или скрыто (т.е. до того, как произойдет событие shown.bs.modal или hidden.bs.modal ).

  myModal.toggle ()  
показать

Открывает модальное окно вручную. Возврат к вызывающей стороне до фактического отображения модального окна (то есть до того, как произойдет событие shown.bs.modal ).

  myModal.show ()  
hide

Скрывает модальное окно вручную. Возврат к вызывающей стороне до фактического скрытия модального окна (т.е. до того, как произойдет событие hidden.bs.modal ).

  myModal.hide ()  
handleUpdate

Вручную отрегулируйте положение модального окна, если высота модального окна изменяется, пока он открыт (например, в случае появления полосы прокрутки).

  myModal.handleUpdate ()  
dispose

Уничтожает модальное окно элемента. (Удаляет сохраненные данные в элементе DOM)

  myModal.dispose ()  
getInstance

Статический метод , который позволяет получить модальный экземпляр, связанный с элементом DOM

  var myModalEl = document.getElementById ('myModal')
var modal = bootstrap.Modal.getInstance (myModalEl)  

События

Модальный класс Bootstrap предоставляет несколько событий для подключения к модальным функциям. Все модальные события запускаются в самом модальном окне (т.е. на

).

Тип события Описание
показать.bs.modal Это событие запускается немедленно, когда вызывается метод экземпляра show . Если он вызван щелчком, выбранный элемент доступен как свойство relatedTarget события.
shown.bs.modal Это событие запускается, когда модальное окно стало видимым для пользователя (будет ожидать завершения переходов CSS). Если он вызван щелчком, выбранный элемент доступен как свойство relatedTarget события.
hide.bs.modal Это событие запускается сразу после вызова метода экземпляра hide .
hidden.bs.modal Это событие запускается, когда модальное окно перестало быть скрытым от пользователя (будет ожидать завершения переходов CSS).
hidePrevented.bs.modal Это событие запускается, когда отображается модальное окно, его фон - static , а щелчок за пределами модального окна или нажатие клавиши выхода выполняется с опцией клавиатуры или data- bs-keyboard установлен на false .
  var myModalEl = document.getElementById ('myModal')
myModalEl.addEventListener ('hidden.bs.modal', функция (событие) {
  
})  

Bootstrap Modal - Примеры и руководства. Узнайте, как использовать Bootstrap Modal · CoreUI для Bootstrap 4

Дом Бутстрап Модальный Последнее изменение: 6 января 2020 г.

Bootstrap Modals предлагает легкое, многоцелевое всплывающее окно JavaScript для добавления диалогов к вашему. Узнайте, как легко настроить Bootstrap Modals. Несколько примеров и учебник.

На этой странице:

Как это работает

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

Bootstrap - это легкие и многоцелевые всплывающие окна. Модальные окна разделены на три основных раздела: заголовок, тело и нижний колонтитул. У каждого есть своя роль, и поэтому его следует использовать соответствующим образом.

  • Модальные окна построены с использованием HTML, CSS и JavaScript. Они располагаются поверх всего остального в документе и убирают прокрутку с , чтобы вместо этого прокручивалось модальное содержимое.
  • Щелчок по модальному «фону» автоматически закрывает модальное окно.
  • Bootstrap поддерживает только одно модальное окно за раз. Вложенные модальные окна не поддерживаются, поскольку мы считаем, что они неудобны для пользователей.
  • В модальных окнах
  • используется положение : фиксированное значение , что иногда может быть немного специфичным в отношении его рендеринга. По возможности размещайте модальный HTML-код на верхнем уровне, чтобы избежать потенциального вмешательства со стороны других элементов. Скорее всего, вы столкнетесь с проблемами при вложении .modal в другой фиксированный элемент.
  • Еще раз, из-за позиции : исправлено , есть некоторые предостережения при использовании модальных окон на мобильных устройствах.См. Дополнительную информацию в нашей документации по поддержке браузера.
  • Из-за того, как HTML5 определяет свою семантику, атрибут autofocus HTML не действует в модальных окнах Bootstrap. Чтобы добиться того же эффекта, используйте собственный код JavaScript:
  var myModal = document.getElementById ('myModal')
var myInput = document.getElementById ('myInput')

myModal.addEventListener ('shown.bs.modal', function () {
  myInput.focus ()
})
  

Примеры

Модальные компоненты

Ниже приведен базовый модальный пример.Включены верхний колонтитул, тело и модальный нижний колонтитул.

Здесь идет модальный основной текст.

  
Модальный заголовок

Здесь находится модальный основной текст.

Предварительный просмотр

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

Woohoo, вы читаете этот текст в модальном окне!

Запустить демонстрационный модальный режим

  



  

Прокрутка длинного содержимого

Хотя модальные окна становятся слишком длинными для области просмотра или устройства пользователя, они прокручиваются отдельно от самой страницы.

Lorem ipsum dolor sit amet, conctetur adipiscing elit. Fusce consquat, purus at luctus pulvinar, sapien libero scelerisque neque, sed bibendum ex dui at felis.Целое число sed imperdiet nibh, non eleifend lectus. Sed interdum, toror et rutrum elementum, nisi risus venenatis risus, eget dictum ligula lacus et magna. Nullam pharetra enim quis velit pellentesque euismod. Целое число, не имеющее отношения к массе. Меценат sollicitudin id justo id varius. Maecenas vel nisl eget velit aliquam facilisis. Aenean luctus placerat ornare. Cras congue dolor et enim molestie rhoncus. Proin volutpat, augue eget luctus scelerisque, orci nisi mollis eros, ut volutpat ipsum justo ac toror.

Curabitur eget arcu quam. Nullam blandit justo eu Commodo Mollis. Quisque hendrerit orci vitae ante faucibus molestie. Praesent maximus et dolor eu condimentum. Praesent egestas est eu sem scelerisque tempor. Curabitur posuere metus vitae risus ultricies fermentum. Nulla fermentum, elit ac maximus laoreet, arcu massa bibendum ipsum, ac feugiat tellus orci id erat. Pellentesque elit felis, Vehicula et egestas nec, pulvinar quis magna. Морби сит амет малесуада ерат, бывший местный житель.

Praesent imperdiet, nulla sit amet vehicleula volutpat, dolor velit aliquet mauris, a placerat orci urna vitae tellus.In hac Habitasse platea dictumst. Donec ut elit eu urna tristique pellentesque. Maecenas dignissim iaculis scelerisque. Aenean ligula neque, efficitur sed elementum id, posuere eget lectus. Sed tristique sollicitudin arcu at interdum. Donec eget gravida nisi, id mollis nibh. Aliquam id accumsan quam. Присутствует в Suscipit magna. Sed porttitor tincidunt congue. Fusce dignissim dapibus Conctetur. Ut bibendum finibus sem eu sodales. Nullam porta nisi lacus, at mollis arcu malesuada at.

Запустить демонстрационный модальный режим

  



  

Вы также можете создать прокручиваемое модальное окно, которое позволяет прокручивать модальное тело, добавив .modal-dialog-scrollable к .modal-dialog .

Запустить демонстрационный модальный режим

  



  

Вертикально по центру

Добавьте .modal-dialog-centered в .modal-dialog , чтобы центрировать модальное окно по вертикали.

Praesent imperdiet, nulla sit amet vehicleula volutpat, dolor velit aliquet mauris, a placerat orci urna vitae tellus.In hac Habitasse platea dictumst. Donec ut elit eu urna tristique pellentesque.

Вертикально центрированный модальный Вертикально центрированное прокручиваемое модальное окно

  



  

Всплывающие подсказки и всплывающие подсказки

Всплывающие подсказки и всплывающие окна могут быть размещены в модальных окнах по мере необходимости. Когда модальные окна закрываются, любые всплывающие подсказки и всплывающие окна также автоматически закрываются.

Поповер в модальном окне

Эта кнопка вызывает всплывающее окно при нажатии.


Подсказки в модальном окне

Эта ссылка и эта ссылка имеют всплывающие подсказки при наведении курсора.

Запустить демонстрационный модальный режим

  
Всплывающее окно в модальном окне

Этот button вызывает всплывающее окно при нажатии. < / p>


Подсказки в модальном окне

Эта ссылка и эта ссылка имеют всплывающие подсказки при наведении курсора.

Использование сетки начальной загрузки

Используйте сетку Bootstrap внутри модального окна, вложив .container-fluid в .modal-body . Далее используйте стандартные классы сетки.

.col-md-4

.col-md-4 .ml-auto

.col-md-3 .ml-auto

.col-md-2 .ml-auto

Уровень 1: .col-sm-9

Уровень 2: .col-8 .col-sm-6

Уровень 2: .col-4 .col-sm-6

Запустить демонстрационный модальный режим

  
.col-md-4
.col-md-4 .ml-auto
.col-md-3 .ml-auto
.col-md-2 .ml-auto
.col-md-6 .ml-auto
Уровень 1: .col-sm-9
Уровень 2: .col-8 .col-sm-6
Уровень 2: .col-4 .col-sm-6

Изменение модального содержимого

В ситуации, когда у вас много кнопок, которые запускают одно и то же модальное окно с немного разным содержимым? Используйте атрибуты event.relatedTarget и HTML data- * для изменения содержимого модального окна в зависимости от нажатия кнопки.

Открыть модальное окно для @mdo Открыть модальное окно для @fat Открыть модальное окно для @getbootstrap
  



  
  $ ('# exampleModal').on ('show.coreui.modal', function (event) {
  var button = $ (event.relatedTarget) // Кнопка, запускающая модальное окно
  var recipient = button.data ('Any') // Извлекаем информацию из атрибутов data- *
  // При необходимости вы можете инициировать запрос AJAX здесь
  // а затем выполняем обновление в обратном вызове.
  // Обновляем содержимое модального окна.
  var modal = $ (это)
  modal.find ('. modal-title'). text ('Новое сообщение для' + получатель)
  modal.find ('. ввод модального тела'). val (получатель)
})
  

Изменить анимацию

Переменная $ modal-fade-transform определяет состояние преобразования .modal-dialog перед модальной анимацией постепенного появления, переменная $ modal-show-transform определяет преобразование .modal-dialog в конце модальной анимации постепенного появления.

Если вам нужна, например, анимация увеличения, вы можете установить $ modal-fade-transform: scale (.8) .

Удалить анимацию

Для модальных окон, которые просто появляются, а не исчезают из поля зрения, удалите класс .fade из модальной разметки.

    

Динамическая высота

Если высота модального окна изменяется, пока он открыт, вы должны вызвать $ ('# myModal'). Modal ('handleUpdate') , чтобы скорректировать положение модального окна в случае появления полосы прокрутки.

Доступность

Не забудьте добавить role = "dialog" и aria-labelledby = "..." со ссылкой на модальный заголовок в .modal и role = "document" в .modal-dialog сам.

Дополнительные размеры

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

Bootstrap имеют два размера, доступные через классы css для размещения в .modal-dialog .

Размер Класс Модальная макс.ширина
Маленький .modal-sm 300 пикселей
По умолчанию Нет 500 пикселей
Большой .модальный-LG 800 пикселей
Очень большой .modal-xl 1140 пикселей

Наш модальный класс по умолчанию без модификатора представляет собой модальное окно «среднего» размера.

Очень большой модальный Большой модальный Малый модальный

  












  

Использование

Модальный плагин начальной загрузки переключает ваш скрытый контент по запросу, используя атрибуты данных или JavaScript. Он дополнительно добавляет .modal-open к , чтобы переопределить поведение прокрутки по умолчанию, и создает .modal-backdrop для реализации области щелчка для отклонения показанных модальных окон при щелчке вне модального окна начальной загрузки.

Через атрибуты данных

Показать модальное окно без написания JavaScript.Установите data-toggle = "modal" на компоненте контроллера, например кнопке, вместе с data-target = "# foo" или href = "# foo" , чтобы выбрать конкретный модальный элемент для переключения.

    

Через JavaScript

Создайте модальное окно с одной строкой JavaScript:

  var myModal = new coreui.Modal (document.getElementById ('myModal'), параметры)
  

через jQuery

Удален jQuery в пользу обычного JavaScript

В версии 3.x мы удалили jQuery в пользу обычного JavaScript. Библиотека CoreUI (@ coreui / coreui) больше не требует jQuery. Однако, если вы предпочитаете использовать jQuery вместо обычного JavaScript, ничто не мешает.

Вызов модального окна с идентификатором myModal с помощью одной строки JavaScript:

  $ ('# myModal'). Modal (параметры)
  

Опции

Свойства могут быть заданы с помощью атрибутов данных или JavaScript. Для атрибутов данных добавьте имя параметра к data- , как в data-backdrop = "" .

Имя Тип По умолчанию Описание
фон boolean или строка 'static' правда Включает элемент модального фона. В качестве альтернативы укажите static для фона, который не закрывает модальное окно при щелчке.
клавиатура логический правда Закрывает модальное окно при нажатии клавиши выхода
фокус логический правда При инициализации фокусируется на модальном окне.
показать логический правда Показывает модальное окно при инициализации.

Поведение JavaScript

Методы

Асинхронные методы и переходы

Все методы API асинхронны и запускают переход . Они возвращаются к вызывающему, как только начинается переход, но до его завершения . Кроме того, вызов метода в переходном компоненте будет проигнорирован .

См. Нашу документацию по JavaScript для получения дополнительной информации.

Варианты передачи

Активирует ваш контент как модальный. Принимает необязательные параметры , объект .

  var myModal = new coreui.Modal (document.getElementById ('myModal'), {
  клавиатура: ложь
})
  
переключатель

Переключает модальное окно вручную. Возврат к вызывающей стороне до того, как модальное окно было фактически показано или скрыто (то есть до того, как показано .coreui.происходит модальное событие или hidden.coreui.modal ).

показать

Открывает модальное окно вручную. Возврат к вызывающей стороне до фактического отображения модального окна (то есть до того, как произойдет событие .coreui.modal ).

скрыть

Вручную скрывает модальное окно. Возврат к вызывающей стороне до фактического скрытия модального окна (т.е. до того, как произойдет событие hidden.coreui.modal ).

Ручка
Обновление

Вручную отрегулируйте положение модального окна, если высота модального окна изменяется, пока он открыт (т.е. в случае появления полосы прокрутки).

утилизировать

Уничтожает модальное окно элемента.

getInstance

Статический метод , который позволяет получить модальный экземпляр, связанный с элементом DOM

  var myModalEl = document.getElementById ('myModal')
var modal = coreui.Modal.getInstance (myModalEl) // Возвращает модальный экземпляр Bootstrap
  

События

Модальный класс

Bootstrap предоставляет несколько событий для подключения к модальным функциям.Все модальные события запускаются в самом модальном окне (т.е. на

).

Показан
Тип события Описание
показать.coreui.modal Это событие запускается немедленно при вызове метода экземпляра show . Если он вызван щелчком, выбранный элемент доступен как свойство relatedTarget события.
.coreui.modal Это событие вызывается, когда модальное окно становится видимым для пользователя (будет ожидать завершения переходов CSS).Если он вызван щелчком, выбранный элемент доступен как свойство relatedTarget события.
hide.coreui.modal Это событие запускается сразу после вызова метода экземпляра hide .
скрытый.coreui.modal Это событие запускается, когда модальное окно перестало быть скрытым от пользователя (будет ожидать завершения переходов CSS).
hidePrevented.coreui.modal Это событие запускается, когда отображается модальное окно, его фон - static и выполняется щелчок за пределами модального окна или нажатие клавиши scape.

Поведение jQuery

Удален jQuery в пользу обычного JavaScript

В версии 3.x мы удалили jQuery в пользу обычного JavaScript. Библиотека CoreUI (@ coreui / coreui) больше не требует jQuery. Однако, если вы предпочитаете использовать jQuery вместо обычного JavaScript, ничто не мешает.

Методы

Асинхронные методы и переходы

Все методы API асинхронны и запускают переход .Они возвращаются к вызывающему, как только начинается переход, но до его завершения . Кроме того, вызов метода в переходном компоненте будет проигнорирован .

См. Нашу документацию по JavaScript для получения дополнительной информации.

.modal (опции)

Активирует ваш контент как модальный. Принимает необязательные параметры , объект .

  $ ('# myModal'). Modal ({
  клавиатура: ложь
})
  
.modal ('переключение')

Переключает модальное окно вручную. Возврат к вызывающей стороне до того, как модальное окно было фактически показано или скрыто (т.е. до того, как произойдет событие shown.coreui.modal или hidden.coreui.modal ).

  $ ('# myModal'). Модальный ('переключатель')
  
.modal ('показать')

Открывает модальное окно вручную. Возврат к вызывающей стороне до фактического отображения модального окна (то есть до того, как произойдет событие .coreui.modal ).

  $ ('# myModal').модальный ('показать')
  
.modal ('скрыть')

Вручную скрывает модальное окно. Возврат к вызывающей стороне до фактического скрытия модального окна (т.е. до того, как произойдет событие hidden.coreui.modal ).

  $ ('# myModal'). Модальный ('скрыть')
  
.modal ('handleUpdate')

Вручную отрегулируйте положение модального окна, если высота модального окна изменяется, пока он открыт (т. Е. В случае появления полосы прокрутки).

  $ ('# myModal').модальный ('handleUpdate')
  
.modal ('dispose')

Уничтожает модальное окно элемента.

События
Модальный класс

Bootstrap предоставляет несколько событий для подключения к модальным функциям. Все модальные события запускаются в самом модальном окне (т.е. на

).

Показан
Тип события Описание
показать.coreui.modal Это событие запускается немедленно при вызове метода экземпляра show .Если он вызван щелчком, выбранный элемент доступен как свойство relatedTarget события.
.coreui.modal Это событие вызывается, когда модальное окно становится видимым для пользователя (будет ожидать завершения переходов CSS). Если он вызван щелчком, выбранный элемент доступен как свойство relatedTarget события.
hide.coreui.modal Это событие запускается сразу после вызова метода экземпляра hide .
скрытый.coreui.modal Это событие запускается, когда модальное окно перестало быть скрытым от пользователя (будет ожидать завершения переходов CSS).
  $ ('# myModal'). On ('hidden.coreui.modal', function (e) {
  // сделай что-нибудь...
})
  

Пример модального диалога | WAI-ARIA Authoring Practices 1.2

Пример модального диалогового окна | Практика разработки WAI-ARIA 1.2

Ниже приведен пример реализации шаблон проектирования для модальных диалогов.Приведенная ниже кнопка Добавить адрес доставки открывает модальное диалоговое окно, содержащее две кнопки, открывающие другие диалоговые окна. В разделе специальных возможностей объясняется обоснование первоначального размещения фокуса и использования арии , описанной в каждом диалоговом окне.

Подобные примеры включают:

Добавить адрес доставки

Добавить адрес доставки

Подтвердить адрес Добавлять Отмена

Результат проверки

Это просто демонстрация.Если бы это было настоящее приложение, оно бы предоставить сообщение о том, действителен ли введенный адрес.

В демонстрационных целях в этом диалоговом окне много текста. Он демонстрирует сценарий, где:

  • Первый интерактивный элемент, ссылка на справку, находится внизу диалогового окна.
  • Если при открытии диалогового окна фокус находится на первом интерактивном элементе, сообщение проверки может не отображаться.
  • Если сообщение проверки отображается и фокус находится на ссылке справки, то фокус может быть не виден.
  • Когда откроется диалоговое окно, важно, чтобы оба:
    • Начало текста видно, поэтому пользователям не нужно возвращаться к начать читать.
    • Фокус клавиатуры всегда остается видимым.

Есть несколько способов решить эту проблему:

  • Поместите интерактивный элемент вверху диалогового окна, e.g., кнопку или ссылку.
  • Сделайте статический элемент доступным для фокусировки, например заголовок диалога или первый блок текст.

Пожалуйста, НЕ делать элемент с диалоговым окном ролей фокусируемым!

  • Чем больше фокусируемый элемент, тем труднее его визуально определить место фокусировки, особенно для пользователей с узким полем зрения.
  • Диалог имеет визуальную рамку, поэтому создается четкий визуальный индикатор фокуса. когда весь диалог имеет фокус, это не очень возможно.
  • Программы чтения с экрана считывают метку и содержимое фокусируемых элементов. Диалог содержит свой ярлык и много контента! Если у такого диалога есть фокус, реальный фокус трудно понять.

В этом диалоговом окне первый абзац имеет tabindex = -1 .Первое абзац также содержится внутри элемента, который предоставляет описание диалога, т.е.элемент, на который имеется ссылка автор ария описана . С некоторыми программами чтения с экрана это может иметь один минус но относительно незначительный побочный эффект при открытии диалога - первый абзац может быть объявлен дважды. Тем не менее, если сделать первый абзац доступным для фокусировки и установить первоначальная ориентация на него - наиболее широко доступный вариант.

Добавлен адрес

Указанный вами адрес добавлен в ваш список адресов доставки. Готово для немедленного использования. Если вы хотите удалить его, вы можете сделать это из твой профиль.

ОК

Конец дороги!

Вы активировали фальшивую ссылку или кнопку, которая никуда не денется! Ссылка или кнопка представлены только в демонстрационных целях.

Закрывать

Специальные возможности

  1. Чтобы упростить чтение содержимого при отображении на маленьких экранах, диалоговое окно заполняет 100% экрана. Полное закрытие фонового окна также скрывает фоновое движение, которое происходит на некоторых мобильных устройствах при прокрутке содержимого внутри диалогового окна.
  2. Фокус и доступные описания устанавливаются на основе содержимого каждого диалогового окна.
    1. Диалог добавления адреса доставки (id = dialog1):
      • Первоначальный фокус установлен на первом входе, который является первым фокусируемым элементом.
      • Диалог не требует aria -formed by , поскольку нет статического текста, описывающего его.
      • Когда диалоговое окно закрывается в результате действия Отменить , точка внимания пользователя сохраняется за счет возврата фокуса на кнопку Добавить адрес доставки .
      • Когда диалоговое окно закрывается в результате действия Добавить и диалоговое окно Добавлен адрес заменяет диалоговое окно Добавить адрес доставки , диалоговое окно Добавить адрес доставки передает ссылку на кнопку Добавить адрес доставки в диалоговое окно Добавление адреса доставки так что он может сохранять точку зрения пользователя, когда он закрывается.
    2. Результат проверки диалоговое окно (id = dialog2):
      • Первоначальный фокус установлен на первом абзаце, потому что первый интерактивный элемент находится внизу, который находится вне поля зрения из-за длины текста.
      • Чтобы поддержать осведомленность пользователей программы чтения с экрана о тексте диалога, текст диалога заключен в div , на который ссылается aria, описанный .
      • Когда диалоговое окно закрывается, чтобы сохранить внимание пользователя, фокус возвращается к кнопке Проверить адрес .
      • В тексте этого диалогового окна описаны соображения по проектированию для начального фокуса и доступных описаний в диалоговых окнах с большим количеством текста.
    3. Адрес Добавлен диалог (id = dialog3):
      • Первоначальный фокус установлен на кнопке OK , которая является последним фокусируемым элементом. Это сделано для повышения эффективности, поскольку большинство пользователей просто закроют диалоговое окно, как только прочитают сообщение. Пользователи могут нажать Вкладка , чтобы перейти по ссылке Мой профиль .
      • На элемент, содержащий диалоговое сообщение, ссылается aria, описанный , чтобы подсказывать программам чтения с экрана, что он должен быть объявлен при открытии диалогового окна.
      • Когда диалоговое окно закрывается, внимание пользователя сохраняется путем установки фокуса на кнопку Добавить адрес доставки .
    4. Конец дороги! диалог (id = dialog4):
      • В этом диалоговом окне есть только один фокусируемый элемент, который получает фокус при открытии диалогового окна.
      • Подобно диалоговому окну 3, aria, описанный , используется для облегчения объявления сообщений для пользователей программ чтения с экрана.
      • Как и все другие диалоговые окна в этом примере, за исключением диалогового окна подтверждения Address Added , когда оно закрывается, точка внимания пользователя сохраняется путем возврата фокуса на элемент, который инициировал отображение диалогового окна.

Подставка для клавиатуры

Ключ Функция
Выступ
  • Перемещает фокус на следующий фокусируемый элемент внутри диалога.
  • Когда фокус находится на последнем фокусируемом элементе в диалоговом окне, перемещает фокус на первый фокусируемый элемент в диалоговом окне.
Shift + Tab
  • Перемещает фокус на предыдущий фокусируемый элемент внутри диалога.
  • Когда фокус находится на первом фокусируемом элементе в диалоговом окне, перемещает фокус на последний фокусируемый элемент в диалоговом окне.
Побег Закрывает диалоговое окно.

Роль, свойство, состояние и атрибуты Tabindex

Роль Атрибут Элемент Использование
диалог див Определяет элемент, который служит контейнером диалога.
aria-labelledby = IDREF див Придает диалоговому окну доступное имя, ссылаясь на элемент, обеспечивающий заголовок диалога.
aria-описаноby = IDREF див
  • Придает диалогу доступное описание, ссылаясь на содержимое диалога, которое описывает основное сообщение или цель диалога.
  • Используется в трех из четырех диалоговых окон, включенных в пример. См. Объяснение в приведенном выше разделе о специальных возможностях.
aria-modal = true див Сообщает вспомогательным технологиям, что окна под текущим диалоговым окном недоступны для взаимодействия (инертны).

Примечания к

aria-modal и aria-hidden
  1. Свойство aria-modal было введено в ARIA 1.1. В качестве нового свойства пользователи программ чтения с экрана могут испытывать различную степень поддержки для него.
  2. Применение свойства aria-modal к элементу dialog заменяет технику использования aria-hidden на заднем плане для информирования вспомогательных технологий о том, что содержимое вне диалога инертно.
  3. В устаревших реализациях диалоговых окон, где aria-hidden используется для того, чтобы сделать содержимое вне диалогового окна инертным для пользователей вспомогательных технологий, важно, чтобы:
    1. aria-hidden устанавливается на true для каждого элемента, содержащего часть инертного слоя.
    2. Элемент dialog не является потомком какого-либо элемента, для которого aria-hidden установлено равным true .

Исходный код JavaScript и CSS

Исходный код HTML

  
Шаблон проектирования модального диалога в методиках разработки WAI-ARIA 1.2

10 фрагментов модального окна на чистом CSS

Модальные окна всегда были областью JavaScript, и есть множество сценариев, которые можно попробовать.

Но с CSS3 создать модальное окно на чистом CSS еще проще. Эффекты несколько ограничены, но вы все равно можете получить отличный опыт, не полагаясь на сценарии.

Большинство этих примеров CSS разбросаны по разным уголкам сети, поэтому я собрал здесь некоторые из лучших.Они варьируются от простых фрагментов кода до более подробных библиотек, но все они имеют открытый исходный код и могут использоваться повторно.

1. CSS Modal

CSS Modal - один из лучших проектов, который вы можете найти для модальных окон, он размещен на GitHub. Это совершенно бесплатная библиотека CSS для модальных окон с настраиваемой анимацией.

В модальные окна можно добавить что угодно, от простого текста до галерей изображений и встроенных видео. Нет никаких ограничений по размеру или поведению, поэтому это отличный выбор практически для любого веб-сайта.

Не говоря уже о том, что это полностью отзывчивый и работает для всех устройств и всех размеров экрана. Установка очень проста, и эта штука даже поставляется с плагином Sass для загрузки.

2. Чистый модальный CSS

Вот еще одна модальная библиотека, которая мне очень нравится, также размещенная на GitHub. Это не только поддерживает затухающую анимацию, но и может появляться в поле зрения с любого направления.

Сам модальный дизайн довольно прост и, безусловно, можно использовать некоторые TLC. Но у него есть все основные функции, которые вам могут понадобиться, например, кнопка X для закрытия и достаточно места для хранения всего, что вы хотите (контент / изображения и т. Д.).

Также у этого есть важная функция, когда пользователь может коснуться фона страницы, чтобы скрыть модальное окно. Это не есть в каждом скрипте модального окна, но это краеугольный камень отличного UX.

Обязательно ознакомьтесь с этой библиотекой, если вам нужны эффекты анимации в модальных окнах. Это совершенно бесплатно, и более подробная информация о настройке содержится в репозитории GitHub.

3. Modalcss

Для действительно простого модального дизайна ознакомьтесь с репозиторием Modalcss, созданным Педро Лаксе.Этот немного старше, последние обновления были год назад (на момент написания этой статьи).

Но модальные окна по-прежнему работают так же хорошо, и нет причин думать, что модальные окна CSS потеряют поддержку браузера. Не говоря уже о том, что это было разработано, чтобы быть отзывчивым и ориентированным на мобильных пользователей с максимально простым UX.

Он поддерживает встраивание видео, хотя этот не поддерживает настраиваемые слайд-шоу.

Стоит использовать, если вам нужен простой дизайн с простой настройкой.

4. Чистый дизайн

С точки зрения эстетики, этот модальный скрипт - один из моих любимых. Он был разработан пользователем GitHub LeoZhang и требует всего около 100 строк CSS.

Живая демонстрация на китайском языке, но, к счастью, вам не нужно читать содержимое, чтобы увидеть, как это работает. Все в дизайне просто фантастическое, от кнопки CTA до маленького значка X в верхнем углу (тоже чистый CSS).

Мне не нравится, что это нельзя закрыть, щелкнув фон.Возможно, эту функцию можно было бы добавить, но в нынешнем виде без этой функции она кажется ограниченной.

Тем не менее, с великолепной анимацией и красивым дизайном, это отличный выбор для модального окна на чистом CSS.

5. Модальное окно HTML5 / CSS3

Разработчик Кэмерон Бэйни создал свою собственную версию модального HTML5 / CSS3 с довольно хорошими результатами.

Вы можете просмотреть исходный код здесь и взглянуть на живую демонстрацию, если хотите увидеть это в действии.Это очень простой эффект с анимацией слайда вниз и кнопкой «закрыть», а не значком X.

К сожалению, это репо не обновлялось более 4 лет, поэтому маловероятно, что разработчик будет обслуживать его. Но он хорошо работает как шаблон, который вы можете скопировать / вставить и изменить для своего собственного сайта.

6. Модальный от Фелипе Фиальо

Это модальное окно без JS использует селектор CSS : target для запуска модального окна и его закрытия. Это отличный способ обработки взаимодействия с пользователем с помощью чистого CSS, и он поддерживает старые браузеры, такие как Internet Explorer (в частности, IE9 +).

Удивительно, но этот модальный элемент является результатом целого пакета решений CSS, созданного разработчиком Фелипе Фиальо.

Все они совершенно бесплатны, и вы можете загрузить исходный код непосредственно для модальных окон, слайд-шоу, всплывающих подсказок и многого другого.

7. CSS-Modals

Frontend-разработчик Джон Убербахер бесплатно создал несколько CSS-модалов на GitHub. В этом нет ничего особенного, но они отлично выглядят и работают так, как ожидалось.

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

Тем не менее, установка довольно проста и требует лишь нескольких HTML-элементов с модальным контейнером. Отличный фрагмент для начала работы с очень простым модальным окном без излишеств.

8. Чистый CSS Modal Box

Для полной совместимости с браузером без ущерба для дизайна ознакомьтесь с этим модальным скриптом. Он полностью адаптивен и работает даже в таких старых браузерах, как IE7.

Демонстрация CodePen не совсем "красивая", но функциональная. Вы всегда можете взять этот код и сформировать его по своему усмотрению, что делает его отличной отправной точкой для любого веб-проекта.

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

9. Базовый CSS

Я фанат минималистского дизайна и стараюсь использовать его на всех своих сайтах.Этот стиль обычно больше ориентирован на взаимодействие с пользователем и создание простых, но интуитивно понятных интерфейсов.

Этот сценарий модального окна, созданный разработчиком Тимоти Лонгом, является фантастическим примером минимализма в действии.

Он работает, как и многие другие скрипты, и работает на чистом CSS. Хотя это не должно быть полным ответом на то, что я могу сказать, но это может быть просто проблема со средством просмотра CodePen.

Тем не менее, имея всего 90 строк CSS и 15 строк HTML, это должно быть легко воссоздать и даже расширить самостоятельно с помощью адаптивных стилей.

10. Очистить модальное окно

И последнее, но не менее важное - это простое модальное окно, созданное пользователем Beijing GitHub rodickmini. Кроме того, это очень просто: всего 40 строк CSS и около 10 строк HTML.

Это, наверное, самый маленький пример, который я видел, но он также очень прямолинейный и точный. Без анимации, без эффектов затухания, без эффектов скольжения.

При нажатии на кнопку-переключатель сразу отображается модальное и более темное наложение страницы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *