У меня проблема с компонентом Bootstrap Scrollspy.
Я использую sticky-top
панель навигации, и когда нажимается кнопка навигации, она прокручивается до нужного элемента;
Но проблема в том, что липкая панель навигации перекрывает этот элемент.
Я пробовал использовать data-offset = "50"
в теге body, но это ни на что не повлияло.
Тег тела:
<body data-spy="scroll" data-target="#sectionsNav" data-offset="50">
Тег тела css:
body {
position: relative;
overflow-y: auto;
}
Навигационная панель:
<nav class="navbar navbar-light bg-light sticky-top">
<div id="sectionsNav">
<ul class="nav nav-pills text-center">
<li class="nav-item">
<a class="nav-link" href="#wihe">What is Home Eats</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#hiw">How it Works</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#pws">Problems we Solve</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#jhen">Join Now!</a>
</li>
</ul>
</div>
</nav>
Как это работает div:
..
<div id="hiw" class="container">
...
..
.
</div>
..
Ожидаемое поведение при нажатии кнопки Как это работает на панели навигации:
Происходящее поведение:
Обратите внимание: панель навигации находится над заголовком Как это работает.
Редактировать
После применения ответа @SMAKSS свиток работал как шарм. Но возникла другая проблема: в навигационной панели выделенный элемент становится предыдущим элементом.
На следующем снимке экрана я нажал Как это работает, и он прокручивался правильно, но выделенный элемент навигационной панели - это What is home eats, который является предыдущим. т.е. если я нажму на Проблемы, которые мы решаем, будет выбран Как это работает. Он всегда выбирает предыдущий.
Изменить решение
Я исправил вторую проблему, удвоив атрибут data-offset
до 100. код теперь выглядит так:
<head>
<style>
html {
scroll-padding-top: 70px;
}
body {
position: relative;
overflow-y: auto;
}
</style>
</head>
<body data-spy="scroll" data-target="#sectionsNav" data-offset="100">
...
.
</body>