Это не раскрывающееся меню подменю, это класс li, как на картинке:
Выбрав категорию в адаптивном меню (шаблон - это всего лишь одна страница), я хочу скрыть автоматическое сворачивание навигации при нажатии. Также прогуляйтесь, чтобы использовать в качестве навигации, так как шаблон имеет только одну страницу. Я ищу решение, которое на него не влияет, вот HTML-код меню:
<!-- NAVBAR
================================================== -->
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="brand" href="#">Carousel Demo</a>
<div class="nav-collapse">
<ul class="nav" >
<li class="active"><a href="#home">Home</a></li>
<li><a href="#about">About</a></li>
<li><a href="#portfolio">Portfolio</a></li>
<li><a href="#services">Services</a></li>
<li><a href="#contact">Contact</a></li>
<!-- dropdown -->
</ul>
<!-- /.nav -->
</div>
<!--/.nav-collapse -->
</div>
<!-- /.container -->
</div>
<!-- /.navbar-inner -->
</div>
<!-- /.navbar -->
jquery
html
twitter-bootstrap
Тим Витор
источник
источник
Ответы:
попробуй это:
источник
Я просто копирую 2 атрибута
btn-navbar
(data-toggle="collapse" data-target=".nav-collapse.in"
) для каждой ссылки следующим образом:В Bootstrap 4 Navbar ,
in
изменилось кshow
так что синтаксис будет выглядеть так :data-toggle="collapse" data-target=".navbar-collapse.show"
источник
data-toggle
иdata-target
в <li> - более чистое решение. Спасибо..in
к цели данных:data-toggle="collapse" data-target=".nav-collapse.in"
источник
.navbar-toggler
. В любом случае, супер рабочий код, спасибо!Лучше использовать методы по умолчанию collapse.js ( V3 docs , V4 docs ):
источник
.nav a
селектор на этот:.nav a:not(.dropdown-toggle)
.nav a
чтобы использовать.navbar a
.navbar-collapse
и нет.nav-collapse
?.nav-collapse
был использован в примере кода вопроса.Еще более элегантный без лизать дублированного кода, можно просто применить
data-toggle="collapse"
иdata-target=".nav-collapse"
атрибуты самого нав:Супер чистый, JavaScript не требуется. Прекрасно работает, пока ваши
nav a
элементы имеют достаточно заполнения для толстых пальцев, и вы не предотвращаете всплывающее событие,e.stopPropagation()
когда пользователи нажимают наnav a
элементы.источник
data-target=".nav-collapse.in"
<div class="collapse navbar-collapse" data-toggle="collapse" data-target=".navbar-collapse">
Обновите свой
в
Это простое изменение сработало для меня.
Ссылка: https://github.com/twbs/bootstrap/issues/9013
источник
data-target=".navbar-collapse.in"
как с новым стандартом начальной загрузки..in
Класс для предотвращения анимации , когда на рабочем столеdiv.navbar-collapse
элемента в качествеdata-target
параметра.Навигация должна быть закрыта каждый раз, когда пользователь щелкает мышью в любом месте тела, а не только на элементах навигации. Скажем, меню открыто, но пользователь щелкает по тексту страницы. Пользователь ожидает закрытия меню.
Вы также должны убедиться, что кнопка переключения видна, иначе в меню будет виден переход.
источник
Проверено на Bootstrap 3.3.6 - работает!
источник
Попробуйте это> Bootstrap 3
Великолепно, именно то, что я искал, однако у меня были некоторые конфликты с javascript и модальным загрузочным модулем, это исправило его.
Надеюсь это поможет.
источник
Это хорошо сработало для меня. Это то же самое, что и принятый ответ, но устраняет проблему, связанную с представлением рабочего стола / планшета.
источник
источник
beforeShow
мероприятии.Я думаю, что лучше использовать методы collapse.js Bootstrap 3 по умолчанию, используя
.navbar-collapse
как складной элемент, который вы хотите скрыть, как показано ниже.Другие решения могут вызвать другие нежелательные проблемы с тем, как элементы отображаются или работают на вашей веб-странице. Поэтому, хотя некоторые решения могут показаться для решения вашей первоначальной проблемы, они могут очень хорошо представить другие, поэтому убедитесь, что вы выполнили тщательное тестирование своего сайта после любого исправления.
Чтобы увидеть этот код в действии:
Ура!
Показать фрагмент кода
источник
В каждой раскрывающейся ссылке укажите data-toggle = "collapse" и data-target = ". Nav-collapse", где nav-collapse - это имя, которое вы даете ему в раскрывающемся списке.
Это отлично работает на экране с раскрывающимся списком, как на мобильных экранах, но на настольных компьютерах и планшетах он создает flickr. Это потому, что применяется класс .collapsing. Чтобы удалить flickr, я создал медиа-запрос и вставил переполнение, скрытое для сворачивающегося класса.
источник
Добавление data-toggle = "collapse" data-target = ". Navbar-collapse.in" в тег помогло
<a>
мне.источник
Вот как я это сделал. Если есть более плавный путь, пожалуйста, сообщите мне.
Внутри
<a>
тегов, где есть ссылки для меню, я добавил этот код:Он сохраняет слайд-анимацию. Таким образом, при полном использовании это будет выглядеть так:
источник
// ПРИМЕЧАНИЕ. Я добавил «touchstart» для мобильных устройств Touch. touchstart / end без задержки
источник
Это лучшее решение, которое я использовал.
источник
Для тех, кто заметил мерцание панели навигации на рабочем столе при использовании этого решения:
Простое решение этой проблемы состоит в том, чтобы ссылаться на свернутую навигационную панель только путем проверки наличия 'in':
Это сворачивает панель навигации при нажатии, когда панель навигации находится в мобильном режиме, но не затрагивает настольную версию. Это позволяет избежать мерцания, которое многие люди наблюдали в настольных версиях.
Кроме того, если у вас есть панель навигации с раскрывающимися меню, вы не сможете их увидеть, поскольку панель навигации будет скрыта, как только вы нажмете на нее, поэтому, если у вас есть раскрывающиеся меню (как у меня!), Используйте следующее:
При этом ищется наличие выпадающего класса над ссылкой, по которой щелкают в DOM, если она существует, то ссылка намеревалась запустить выпадающее меню, и, следовательно, меню не скрыто. Если щелкнуть ссылку в раскрывающемся меню, панель навигации будет правильно скрыта.
источник
источник
100% работает: -
Добавить в HTML
Javascript
источник
Это скрывает коллапс навигации вместо его анимации, но та же концепция, что и выше.
JS:
HTML:
Я предпочитаю это на одностраничных сайтах, потому что я использую localScroll.js, который уже анимирует.
источник
Мобильное представление: как скрыть переключение навигации в bootstrap + dropdown + jquery + scrollto с элементами навигации, которые указывают на якоря / идентификаторы на той же странице , один шаблон страницы
Проблема, с которой я экспериментировал с любым из вышеперечисленных решений, заключалась в том, что они сворачивают только элементы подменю, а меню навигации не сворачивается.
Так я и подумал .. а что мы можем наблюдать? Что ж, каждый раз, когда мы / пользователи щелкаем ссылку scrollto, мы хотим, чтобы страница прокручивалась до этой позиции, и одновременно свертываем меню, чтобы восстановить просмотр страницы.
Хорошо ... почему бы не назначить эту работу функциям scrollto? Легко :-)
Итак, в двух кодах
и
Я только что добавил одну и ту же команду в обеих функциях
(слава одному из вышеупомянутых участников)
как это (то же самое должно быть добавлено к обоим свиткам)
Если вы хотите увидеть это в действии, просто посмотрите на Recupero Dati Da NAS
источник
Пользователи Bootstrap3 пробуют приведенный ниже код. Это сработало для меня.
источник
Bootstrap устанавливает
.in
класс в элементе Collapse, чтобы запустить анимацию - открыть ее. Если вы просто удалите.in
класс, анимация не запустится, но скроет элемент - не совсем то, что вам нужно.Вероятно, быстрее запустить
if
оператор, чтобы проверить,.in
установлен ли для элемента класс начальной загрузки по умолчанию .Так что этот код просто говорит:
источник
Затем добавьте идентификатор для каждого
источник
Еще одно быстрое решение для Bootstrap 3. * может быть:
источник
Я разместил здесь решение, которое работает с Aurelia: https://stackoverflow.com/a/41465905/6466378
Проблема в том, что нельзя просто добавить
data-toggle="collapse"
иdata-target="#navbar"
свои элементы. И jQuery не работает в среде Aurelia или Angular.Лучшим решением для меня было создание настраиваемого атрибута, который прослушивает соответствующий медиа-запрос и
data-toggle="collapse"
при желании добавляет атрибут:<a href="#" ... collapse-toggle-if-less768 data-target="#navbar"> ...
Пользовательский атрибут с Aurelia выглядит следующим образом:
источник
Я использую Bootstrap 4, использую fullPage.js с фиксированной навигацией по верху и перепробовал все перечисленное здесь со смешанными результатами.
Пробовал лучший, чистый способ:
Меню рухнет, но ссылки href никуда не приведут.
Пробовал логические другие способы:
Было бы странное поведение из-за события touchstart: нажатые кнопки оказывались не теми, на которых я действительно нажимал, следовательно, ссылки разрываются. Кроме того, он добавил бы класс .show к некоторым другим несвязанным выпадающим спискам в моей навигационной панели, что привело бы к еще более странным вещам.
Ничто не сработает.
Так что вместо этого у меня была (пока) изумительная идея сделать это:
У меня уже было что-то в этой функции hashchange, мне просто нужно было добавить эту строку.
На самом деле он делает именно то, что я хочу: сворачивает меню при изменении хэша (т. Е. Произошел щелчок в другом месте). Это хорошо, потому что теперь в моем меню могут быть ссылки, которые не сворачивают.
Кто знает, может это кому-нибудь поможет в моей ситуации!
И спасибо всем, кто участвовал в этой теме, здесь можно узнать много информации.
источник
В большинстве случаев вам нужно будет вызывать функцию переключения, только если кнопка переключения видна ...
источник
Я проверил в меню открывается, проверяя «в» классе, а затем запустить код.
работает отлично.
источник