При работе над недавним проектом я хотел добавить заголовок прокрутки, затем исправить. Я исследовал это, но многие из онлайновых источников мало помогли, так как они опирались на более старые версии различных языков или сильно полагались на необъяснимые «магические числа». В конце концов, я решил просто закодировать это сам, и подготовил следующее:Как сохранить navbar сцентрированным, когда он липнут?
$(document).ready(function(){
var elementPosition = $('#navbar').offset();
$(window).scroll(function() {
if ($(window).scrollTop() > elementPosition.top) {
$('#navbar').css('position', 'fixed').css('top', '0');
} else {
$('#navbar').css('position', 'static');
}})});
Это работало на липкие навигационной панели в верхней части, но всякий раз, когда он активирует его Прилепленных его в левом верхнем углу, а не поддерживать его центральное положение , Все, что я меняю, это «позиция» и добавление атрибута «верх», поэтому я не вижу причин для внезапного смещения в сторону. Я был бы чрезвычайно благодарен за любые исправления или объяснения, которые у вас могут быть. Для справки, вот соответствующий HTML:
<div id="navbar"><ul>
<li id="activePage"><a href="">Home</a></li>
<li><a href="">About</a></li>
<li><a href="">Upcoming events </a><li>
<li><a href="">Contact Us</a></li>
<li><a href="">Contribute</a></li>
</ul></div>
и CSS:
#navbar {
background-color: white;
z-index: 1;
}
#navbar ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
text-align: center;
width: 100%;
}
#navbar li {
text-align: center;
display: inline;
}
#navbar ul #activePage a {
color: #cec8c8;
}
#navbar li a {
color: black;
padding: 14px 35px;
text-decoration: none;
font-family: 'Roboto Slab';
font-size: 25px;
text-align: center;
}
Заранее спасибо за любую помощь вы можете предоставить!
Это сработало отлично, спасибо. Один вопрос: если вы можете делать такие вещи, как '.css ({'top': '0', 'left': '0', 'right': '0'})', я мог бы объединить '.css ('position', 'fixed') 'также для получения' .css ({'top': '0', 'left': '0', 'right': '0', 'position', 'fixed'}) '? – Bugsy
@Bugsy np! Да, вы можете их объединить. Альтернативно, более чистым способом сделать это было бы поместить все эти свойства CSS в класс, например '.sticky', и вы используете jQuery для' $ .addClass ('sticky'); 'и' $ .removeClass ('sticky'); 'на основе вашего' scrollTop() 'условного. –