Итак, я использую этот код, чтобы открыть другое модальное окно в текущем открытом модальном окне:
<a onclick=\"$('#login').modal('hide');$('#lost').modal('show');\" href='#'>Click</a>
Что происходит, так это то, что примерно на 500 мс полоса прокрутки будет дублироваться. Я думаю, потому что текущий модальный режим все еще исчезает. Однако он выглядит очень негладким и заикается.
Буду признателен за любые предложения по решению этой проблемы.
Кроме того, является ли способ создания этого на мероприятии onclick непрофессиональным?
Я работаю с версией начальной загрузки 3.0.
Изменить: я думаю, необходимо сократить время исчезновения модального окна. Как это возможно?
Ответы:
Мое решение не закрывает нижнее модальное окно, а действительно складывается поверх него. Он правильно сохраняет поведение прокрутки. Протестировано в Bootstrap 3. Для того, чтобы модальные окна складывались должным образом, вам необходимо упорядочить их в разметке Html от наименьшего к наибольшему.
ОБНОВЛЕНИЕ: когда вы сложили модальные окна, все фоны появляются под самым нижним модальным окном. Вы можете исправить это, добавив следующий CSS:
Это даст вид модального фона под самым верхним видимым модальным окном. Таким образом, нижние модальные окна станут серыми.
источник
data-dismiss
закрывает текущую силу модального окнаdata-toggle
открывает новое модальное окно сhref
содержимым внутри негоили
дайте нам знать, если это работает.
источник
data-dismiss
делает. Он закрывает текущее окно и открывает новое. Вы можете разместить свой код вbootply
илиjsfiddle
?.modal { overflow-y: auto }
решает проблему прокрутки BS4.Чтобы открыть другое модальное окно в текущем открытом модальном окне,
вы можете использовать bootstrap-modal
bootstrap-модальный ДЕМО
источник
попробуй это
источник
Фактически вы можете определить, когда закрывается старый модальный код, вызвав
hidden.bs.modal
событие:Для получения дополнительной информации: http://getbootstrap.com/javascript/#modals-events
источник
Обновление на 2018 год - использование Bootstrap 4
Я обнаружил, что в большинстве ответов много ненужного jQuery. Открыть модальное окно из другого модального окна можно просто с помощью событий, которые предоставляет Bootstrap, например
show.bs.modal
. Вы также можете захотеть использовать CSS для обработки наложений фона. Вот 3 открытых модальных окна из других сценариев ...Открыть модальный из другого модального окна (оставить 1-й модальный открытым)
Потенциальная проблема в этом случае заключается в том, что фон из 2-го модального окна скрывает 1-й модальный. Чтобы предотвратить это, сделайте второй модальным
data-backdrop="static"
и добавьте немного CSS, чтобы исправить z-индексы фонов ...https://www.codeply.com/go/NiFzSCukVl
Открыть модальный из другого модального окна (закрыть 1-й модальный)
Это похоже на описанный выше сценарий, но, поскольку мы закрываем 1-е модальное окно при открытии 2-го, исправление фонового CSS не требуется. Простая функция, которая обрабатывает второе модальное
show.bs.modal
событие, закрывает первое модальное окно.https://www.codeply.com/go/ejaUJ4YANz
Открыть модальный внутри другого модального
Последний сценарий с несколькими модальными окнами открывает 2-е модальное окно внутри 1-го. В этом случае разметка для 2-го размещается внутри 1-го. Никаких дополнительных CSS или jQuery не требуется.
https://www.codeply.com/go/iSbjqubiyn
источник
.modal-backdrop.show + .modal.show { z-index: 1052 !important; } .modal-backdrop.show + .modal.show + .modal-backdrop.show { z-index: 1051 !important; }
Модальные окна в модальном:
источник
Работа над проектом, в котором есть много модальных окон, вызывающих другие модальные окна, и несколько ребят из HTML, которые могут не знать, как запускать его каждый раз для каждой кнопки. Пришел к такому же выводу, что и @gmaggio, неохотно пройдя сначала долгий путь.
РЕДАКТИРОВАТЬ: теперь поддерживает модальные окна, вызываемые через javascript.
РЕДАКТИРОВАТЬ: открытие модального окна с прокруткой из другого модального окна теперь работает.
Просто поместите модальную кнопку вызова как обычно, и если она будет выбрана внутри модального окна, она сначала закроет текущую, а затем откроет ту, которая указана в data-target. Обратите внимание, что
relatedTarget
это предоставляется Bootstrap.Я также добавил следующее, чтобы немного сгладить затухание: я уверен, что можно сделать больше.
источник
Документы Twitter говорят, что требуется собственный код ...
Это работает без дополнительного JavaScript, хотя настоятельно рекомендуется использовать собственный CSS ...
источник
z-index: 1080 !important;
Для начальной загрузки 4, чтобы расширить ответ @ helloroy, я использовал следующее; -
Преимущество вышеизложенного заключается в том, что он не будет иметь никакого эффекта, когда есть только один модал, он срабатывает только для кратных. Во-вторых, он делегирует обработку телу, чтобы гарантировать, что будущие модальные окна, которые в настоящее время не создаются, по-прежнему обслуживаются.
Обновить
Переход на комбинированное решение js / css улучшает внешний вид - анимация затухания продолжает работать на фоне;
в сочетании со следующим css; -
Это будет обрабатывать модальные окна, вложенные в глубину до 4, что больше, чем мне нужно.
источник
Попробуй это:
Этот простой прием у меня работает.
источник
Для тех, кто использует bootstrap 4 https://jsfiddle.net/helloroy/tmm9juoh/
источник
У меня также были проблемы с прокручиваемыми модальными окнами, поэтому я сделал что-то вроде этого:
Он будет служить для любого модального окна в появившемся модальном окне . Обратите внимание, что первое закрыто, поэтому может появиться второе. Никаких изменений в структуре Bootstrap.
источник
Я все вместе пошел по другому маршруту, я решил их "Де-Нест". Может кому пригодится это ...
источник
Мой код хорошо работает с использованием data-dismiss.
источник
Закройте первое модальное окно Bootstrap и динамически откройте новое модальное окно.
источник
Почему бы просто не изменить содержимое модального тела?
В модальном окне просто поместите ссылку или кнопку
Если вы просто хотите переключиться между двумя модальными окнами:
В модальном окне просто поместите ссылку или кнопку
источник
попробуй это:
источник
Ответ, данный H Dog , великолепен, но этот подход фактически дал мне некоторое модальное мерцание в Internet Explorer 11. Bootstrap сначала скроет модальное окно, удалив класс 'modal-open', а затем (используя решение H Dogs) мы добавим снова модально-открытый класс. Я подозреваю, что это каким-то образом вызывает мерцание, которое я видел, возможно, из-за медленного рендеринга HTML / CSS.
Другое решение - предотвратить загрузку при удалении класса 'modal-open' из элемента body в первую очередь. При использовании Bootstrap 3.3.7 это переопределение внутренней функции hideModal у меня отлично работает.
В этом переопределении класс 'modal-open' удаляется только тогда, когда на экране нет видимых модальных окон. И вы предотвращаете удаление одного кадра и добавление класса к элементу body.
Просто включите переопределение после загрузки начальной загрузки.
источник
источник