Здесь вы узнаете, как сделать "прилипающую" панель навигации при помощи CSS и JavaScript.
Попробовать самому »
Как сделать прилипающую панель навигации
Шаг 1) Добавляем HTML:
Создаем навигационную панель:
Пример
<div id="navbar">
<a href="#home">Главная</a>
<a href="#news">Новости</a>
<a href="#contact">Контакты</a>
</div>
Шаг 2) Добавляем CSS:
Создаем стили для навигационной панели:
Пример
/* Стили панели навигации */
#navbar {
overflow: hidden;
background-color: #333;
}
/* Ссылки панели навигации */
#navbar a {
float: left;
display: block;
color: #f2f2f2;
text-align: center;
padding: 14px;
text-decoration: none;
}
/* Контент страницы */
.content {
padding: 16px;
}
/* Класс sticky добавляется в панель навигации скриптом JS,
когда панель достигает позиции прокручивания */
.sticky {
position: fixed;
top: 0;
width: 100%;
}
/* Добавим верхний отступ к контенту страницы, чтобы не было
неожиданных рывков (так как панель навигации ставится на новую
позицию вверху страницы (position:fixed and top:0) */
.sticky + .content {
padding-top: 60px;
}
Шаг 3) Добавляем JavaScript:
Пример
// Когда пользователь прокручивает страницу, выполняем функцию myFunction
window.onscroll = function() {myFunction()};
// Получаем панель навигации
var navbar = document.getElementById("navbar");
// Получаем смещение позиции панели навигации
var sticky = navbar.offsetTop;
// Добавляем класс sticky, когда панель навигации достигнет позиции прокрутки,
// Убираем класс sticky, когда вы уйдете с позиции прокрутки
function myFunction() {
if (window.pageYOffset >= sticky) {
navbar.classList.add("sticky")
} else {
navbar.classList.remove("sticky");
}
}
Попробовать самому »