Bootstrap5 Навигация в боковой панели (Offcanvas)
Боковая панель Bootstrap5 похожа на модальное окно и обычно используется на мобильных устройствах.
Создание выдвижной навигации
Мы можем использовать JavaScript, чтобы указать, добавлять ли после.offcanvasкласса, добавить.showкласс, тем самым управляя отображением и скрытием боковой панели:
.offcanvasСкрыть содержимое (по умолчанию)
.offcanvas.showПоказать содержимое
Вы можете использоватьhrefатрибут ссылки a, или использовать у элемента buttondata-bs-targetатрибут для настройки боковой панели. В обоих случаях требуется использоватьdata-bs-toggle="offcanvas"。
Пример создания выдвижной навигации выглядит следующим образом:
Пример
<a class="btn btn-primary" data-bs-toggle="offcanvas" href="#offcanvasExample" role="button" aria-controls="offcanvasExample">Используйте атрибут href ссылки</a>
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasExample" aria-controls="offcanvasExample">Используйте data-bs-target в кнопке</button>
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvasExample" aria-labelledby="offcanvasExampleLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasExampleLabel">Боковая панель</h5>
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Закрыть"></button>
</div>
<div class="offcanvas-body">
<div>
Какой-нибудь текст в качестве заполнителя. В реальной жизни у вас могут быть элементы, которые вы выбрали. Например, текст, изображения, списки и т. д.
</div>
<div class="dropdown mt-3">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-bs-toggle="dropdown">
Кнопка выпадающего списка
</button>
<ul class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<li><a class="dropdown-item" href="#">Действие</a></li>
<li><a class="dropdown-item" href="#">Другое действие</a></li>
<li><a class="dropdown-item" href="#">Что-то ещё здесь</a></li>
</ul>
</div>
</div>
</div>
Попробуйте »
Направление боковой панели
Направление боковой панели можно задать с помощью следующих четырёх классов:
.offcanvas-startОтображение слева, как в примере выше.
.offcanvas-endОтображение справа
.offcanvas-topОтображение вверху
.offcanvas-bottomОтображение внизу
Пример
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasTop" aria-controls="offcanvasTop">Верхняя панель навигации</button>
<div class="offcanvas offcanvas-top" tabindex="-1" id="offcanvasTop" aria-labelledby="offcanvasTopLabel">
<div class="offcanvas-header">
<h5 id="offcanvasTopLabel">Отображается в верхней панели навигации</h5>
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Закрыть"></button>
</div>
<div class="offcanvas-body">
...
</div>
</div>
Попробуйте »
Пример
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasRight" aria-controls="offcanvasRight">Правая боковая панель</button>
<div class="offcanvas offcanvas-end" tabindex="-1" id="offcanvasRight" aria-labelledby="offcanvasRightLabel">
<div class="offcanvas-header">
<h5 id="offcanvasRightLabel">Отображается в правой боковой панели</h5>
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Закрыть"></button>
</div>
<div class="offcanvas-body">
...
</div>
</div>
Попробуйте »
Пример
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasBottom" aria-controls="offcanvasBottom">Нижняя панель навигации</button>
<div class="offcanvas offcanvas-bottom" tabindex="-1" id="offcanvasBottom" aria-labelledby="offcanvasBottomLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasBottomLabel">Отображается в нижней панели навигации</h5>
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Закрыть"></button>
</div>
<div class="offcanvas-body small">
...
</div>
</div>
Попробуйте »
Настройка фона и возможности его прокрутки
Когда боковая панель появляется, можно задать<body>может ли элемент прокручиваться, а также задать, отображать ли фоновую подложку. Используйтеdata-bs-scrollатрибут для установки<body>может ли элемент прокручиваться,data-bs-backdropчтобы переключать отображение фоновой подложки.
Пример
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasScrolling" aria-controls="offcanvasScrolling">элемент body может прокручиваться</button>
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasWithBackdrop" aria-controls="offcanvasWithBackdrop">Показать фоновую подложку (по умолчанию)</button>
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasWithBothOptions" aria-controls="offcanvasWithBothOptions">Разрешить прокрутку и показать фон offcanvas</button>
<div class="offcanvas offcanvas-start" data-bs-scroll="true" data-bs-backdrop="false" tabindex="-1" id="offcanvasScrolling" aria-labelledby="offcanvasScrollingLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasScrollingLabel">Содержимое body может прокручиваться</h5>
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Закрыть"></button>
</div>
<div class="offcanvas-body">
<p>Прокрутите страницу, чтобы увидеть эффект.</p>
</div>
</div>
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvasWithBackdrop" aria-labelledby="offcanvasWithBackdropLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasWithBackdropLabel">Использовать фон offcanvas</h5>
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Закрыть"></button>
</div>
<div class="offcanvas-body">
<p>Содержимое body не может прокручиваться</p>
</div>
</div>
<div class="offcanvas offcanvas-start" data-bs-scroll="true" tabindex="-1" id="offcanvasWithBothOptions" aria-labelledby="offcanvasWithBothOptionsLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasWithBothOptionsLabel">Использовать фоновый холст, содержимое body может прокручиваться</h5>
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Закрыть"></button>
</div>
<div class="offcanvas-body">
<p>Прокрутите страницу, чтобы увидеть эффект.</p>
</div>
</div>
Попробуйте »
Примеры боковой панели
Другие расширения