У меня есть веб-страница с верхней горизонтальной навигационной панелью - это, скорее, точный ботстрап Twitter Bootstrap с верхним фиксированным положением (на самом деле это не совсем исправлено с помощью CSS, см. JavaScript ниже), поэтому панель навигации сначала будет видна внизу страницы, а затем отображается в верхней части страницы при прокрутке (position: fixed; top: 0
).Щебетать Bootstrap с фиксированной навигационной панелью на прокрутке с привязкой ссылок на странице
У меня есть ссылки для навигации, созданные с привязными тегами, чтобы привлечь зрителя в разные места в теле страницы. К сожалению, иногда пользователь слишком сильно падает (особенно если пользователь находится в верхней части страницы, а панель навигации еще не зафиксирована).
Посмотрите на мою HTML структуру:
<div id="landing"></div>
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li><a href="#landing">Home</a></li>
<li><a href="#section1">Section 1</a></li>
<li><a href="#section2">Section 2</a></li>
<li><a href="#section3">Section 3</a></li>
</ul>
</div>
</div>
</nav>
<div id="section1"></div>
<div id="section2"></div>
<div id="section3"></div>
для обеспечения я использую следующий JavaScript, что NavBar прилипает к верхней части страницы после прокрутки вниз:
function init() {
nh = 50; // navbar height
sh = $(window).height();
ih = sh-nh;
$("#landing").css('height', ih+'px');
}
function navbarState() {
if ($(window).scrollTop() > ih) {
$('.navbar').addClass('navbar-fixed-top');
} else {
$('.navbar').removeClass('navbar-fixed-top');
}
}
init();
navbarState();
$(window).on('load scroll resize orientationchange', function() {
init();
navbarState();
});
One может заметить, что повторное нажатие первой привязной связи вызывает эффект подпрыгивания. Как я могу это предотвратить?
Моя цель - прокрутить навигацию к соответствующим якорям, независимо от того, находится ли пользователь на целевой странице или нет.
* Вы можете принять ответ, если это поможет вам, и вы не имеете больше вопросов. **:) ** В противном случае не стесняйтесь спрашивать. * – Seika85