У меня есть navbar на моем веб-сайте, в котором я использую Bootstrap
scrollSpy
для отслеживания раздела, который я просматриваю. Теперь я решил добавить раскрывающееся меню в мой navbar
и добавил один, который запускается на hover
вместо клика.
Я использовал решение в этом, чтобы ответить на этот вопрос, чтобы получить раскрывающееся меню при наведении указателя мыши. Однако, поскольку я использую scrollSpy
, щелчок на элементе li
приведет меня к этому разделу. Однако после добавления раскрывающегося списка, нажатие элемента li
не приведет меня в этот раздел.
Кроме того, поскольку триггер зависания отключен в режиме responsive
, нажатие на элемент li
также не открывает раскрывающееся меню.
Теперь наличие scrollSpy
в режиме реагирования не требуется, так как меню все равно будет свернуто.
Это мой раздел навигации:
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#collapse" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="">
<!-- <img class="img img-responsive" src="www/images/srs-logo.jpg" alt="SRS Constructions"> -->
SRS Constructions
</a>
</div>
<div class="collapse navbar-collapse navbar-right" id="collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="#main">Home <span class="sr-only">(current)</span></a></li>
<li><a href="#about">About</a></li>
<li class="dropdown">
<a href="#about" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">About</a>
<ul class="dropdown-menu">
<li><a href="about.html">Founder</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">Separated link</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">One more separated link</a></li>
</ul>
</li>
<li><a href="#services">Services</a></li>
<li><a href="#projects">Our Projects</a></li>
<li><a href="#whyus">Why Us</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</div>
</div>
</nav>
Это мой css для моего навигатора:
@media (min-width: 767px) {
ul.nav li.dropdown:hover > ul.dropdown-menu {
display: block;
}
}
@media (max-width: 767px) {
.navbar-nav > li > a {
line-height: 30px;
padding-top: 10px;
padding-bottom: 10px;
}
.navbar-brand > img {
width: 40%;
position: relative;
display: inline-block;
height: auto;
margin-left: 90px;
margin-top: -80px;
}
#footer {
color: #2e2e2e;
}
}
@media (min-width: 767px) {
#footer {
color: #ffffff;
}
}
.navbar-brand > img {
width: 30%;
position: relative;
display: inline-block;
height: auto;
margin-left: 50px;
margin-top: -15px;
}
В раскрывающемся меню li
находится href
элемент, который вызывает проблему. Я хочу поддерживать как scrollspy, так и при наведении на обычную ширину экрана и только наведение (которое будет кликать), а не scrollspy в режиме реагирования (я не против, если он также работает).
Скажите, пожалуйста, как я могу добиться этого, поскольку оба кажутся противоречивыми друг другу при реализации.
EDIT:
О li - это тот, который я использую для проверки элемента scrollspy и hover:
<li><a href="#about">About</a></li>
<li class="dropdown">
<a href="#about" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">About</a>
<ul class="dropdown-menu">
<li><a href="about.html">Founder</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">Separated link</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">One more separated link</a></li>
</ul>
</li>
- Нажав на первую о работах → он перейдет к раздел.
- Щелчок по второму о не слова → прокрутка шпиона не работает, но наведение работает.
Я хочу объединить обе функции вместе.
Веб-сайт можно просмотреть здесь (без изменений на лету)