Задать вопрос
@Ba1tazarr
Начинающий фронтенд разработчик

Меню из Bootstrap Offcanvas. Как скрывать при клике на пункт меню?

Как сделать чтобы Offcanvas когда оно выезжает слева с пунктами меню, чтобы по клику на пункт меню, панель исчезала. Сейчас она пропадает только если тыкнуть на крестик или по любой области вне Offcanvas. Спасибо!
  • Вопрос задан
  • 521 просмотр
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 2
@SergeiB
При клике на пункт меню вызывать метод hide.
Как-то так.

import Offcanvas from 'bootstrap/js/dist/offcanvas';

const offcanvasEl = document.getElementById('offcanvas');
const offcanvas = Offcanvas.getOrCreateInstance(offcanvasEl);
const links = offcanvasEl.querySelectorAll('.nav-link');

links.forEach(link => link.addEventListener('click', e => offcanvas.hide()));


Также, как вариант, можно попробовать присвоить ссылкам атрибут data-bs-dismiss="offcanvas".
Ответ написан
Сделайте data-bs-dismiss="offcanvas" на li, а не на ссылки. У меня получилось)
<ul class="list-unstyled">
            <li data-bs-dismiss="offcanvas"><a  href="#feedback" class="text-dark">ОТЗЫВЫ</a></li>
            <li  data-bs-dismiss="offcanvas"><a  href="#timetable" class="text-dark">РАСПИСАНИЕ</a></li>
            <li  data-bs-dismiss="offcanvas"><a href="#services" class="text-dark">УСЛУГИ</a></li>
            <li  data-bs-dismiss="offcanvas"><a href="#discounts" class="text-dark">АКЦИИ</a></li>
            <li  data-bs-dismiss="offcanvas"><a href="#faq" class="text-dark">ВОПРОС - ОТВЕТ</a></li>
        </ul>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы