Как правильно инициировать всплывающее окно Bootstrap 5 на кнопке, расположенной в нижнем колонтитуле модального окна

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

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

var locateScreen = new bootstrap.Modal(document.getElementById('TestModalFooterPopover'))


        //Popover
        var exampleEl = document.getElementById('TestPopover-btn')
        var popover = new bootstrap.Popover(exampleEl, {
            html: true,
                sanitize: false,
                container: '.container-fluid',
            title: "Confirm user action?",
            content: $('[data-name = "popover-test-content"]')
        });

        
locateScreen.show()
<link href = "https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel = "stylesheet">
<script src = "https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/umd/popper.min.js" ></script>
<script src = "https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class = "modal fade" id = "TestModalFooterPopover" tabindex = "-1" aria-hidden = "true" data-bs-theme = "dark" data-bs-backdrop = "static" data-bs-keyboard = "false">
  <div class = "modal-dialog modal-fullscreen modal-dialog-centered">
    <div class = "modal-content">
        <div class = "modal-header">
            <h1 class = "modal-title fs-5" id = "locateScreenLabel">Test Footer Popovers</h1>
        </div>
        <div class = "modal-body">
             <div class = "container-fluid h-100">Hello,world.</div>
      </div>
        <div class = "modal-footer">

            <button type = "button" class = "btn btn-sm btn-warning" id = "TestPopover-btn">Test Popover</button>
            
            <div id = "popover-test-holder" class = "d-none">
                <div data-name = "popover-test-content">
                    <div class = "col-sm-12 input-group-sm">
                        <p>Here is a popover with some confirm buttons, where is the bottom of the popover?</p>
                    </div>
                    <div class = "text-center">
                        <button href = "#" class = "btn btn-sm btn-outline-danger me-2">No</button>
                        <button href = "#" class = "btn btn-sm btn-outline-success">Yes</button>
                    </div>
                </div>
            </div>

            <button type = "button" class = "btn btn-sm btn-danger"  id = "locate-btns-close">Close Session</button>
        </div>
      </div>
    </div>
</div>

Установка контейнера как .modal-footer не дает желаемого эффекта.

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
67
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Добавление любого из этих значений в качестве контейнера работает нормально:

    container: exampleEl,
    //container: '.modal-footer',
    //container: 'body',

а в записке написано:

Укажите контейнер: 'тело', чтобы избежать проблем с рендерингом в более сложных компоненты (например, наши группы ввода, группы кнопок и т. д.). https://getbootstrap.com/docs/5.2/components/popovers/

    var locateScreen = new bootstrap.Modal(document.getElementById('TestModalFooterPopover'))


        //Popover
        var exampleEl = document.getElementById('TestPopover-btn')
        var popover = new bootstrap.Popover(exampleEl, {
            html: true,
            sanitize: false,
            container: exampleEl,
            //container: '.modal-footer',
            //container: 'body',
            title: "Confirm user action?",
            content: $('[data-name = "popover-test-content"]')
        });


locateScreen.show()
<link href = "https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel = "stylesheet">
<script src = "https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/umd/popper.min.js" ></script>
<script src = "https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class = "modal fade" id = "TestModalFooterPopover" tabindex = "-1" aria-hidden = "true" data-bs-theme = "dark" data-bs-backdrop = "static" data-bs-keyboard = "false">
  <div class = "modal-dialog modal-fullscreen modal-dialog-centered">
    <div class = "modal-content">
        <div class = "modal-header">
            <h1 class = "modal-title fs-5" id = "locateScreenLabel">Test Footer Popovers</h1>
        </div>
        <div class = "modal-body">
             <div class = "container-fluid h-100">Hello,world.</div>
      </div>
        <div class = "modal-footer">

            <button type = "button" class = "btn btn-sm btn-warning" id = "TestPopover-btn">Test Popover</button>

            <div id = "popover-test-holder" class = "d-none">
                <div data-name = "popover-test-content">
                    <div class = "col-sm-12 input-group-sm">
                        <p>Here is a popover with some confirm buttons, where is the bottom of the popover?</p>
                    </div>
                    <div class = "text-center">
                        <button href = "#" class = "btn btn-sm btn-outline-danger me-2">No</button>
                        <button href = "#" class = "btn btn-sm btn-outline-success">Yes</button>
                    </div>
                </div>
            </div>

            <button type = "button" class = "btn btn-sm btn-danger"  id = "locate-btns-close">Close Session</button>
        </div>
      </div>
    </div>
</div>

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

TangoMike 17.04.2023 07:54

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

traynor 17.04.2023 08:50

Другие вопросы по теме