Добрый день.
Есть сайт
там меню изначально уже фиксированное, при скроллинге в нужном месте (скорее всего, так как js я не знаю) к меню добавляется класс с position:absolute чтобы оно осталось на месте пока не достигнет верха браузера; и дальше когда меню достигает самого верха браузера оно снова фиксируется прямо сверху и там же остается. Сможете помочь организовать такое?
Написал для начала структуру только:
<div id="nav" class="navabs">
<ul>
<li><a href="#top">главная</a></li>
<li><a href="#about">о комплексе</a></li>
<li><a href="#flat">планировки</a></li>
<li><a href="#arround">окружение</a></li>
<li><a href="#gallery">галерея</a></li>
<li><a href="#callus">контакты</a></li>
</ul>
</div>
Как вы и описали - при скроллинге в нужном месте (в примере offset > 300) меняем класс на класс с position: absolute, позже, при прокрутке меняем его то на position: fixed; top: 0;
function getBodyScrollTop() {
var offset = self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
if (offset > 300) {
document.querySelector('#navbar').className = "absolute-menu";
}
if (offset > screen.height - 300) {
document.querySelector('#navbar').className = "fixed-menu-top";
}
}
window.addEventListener("scroll", getBodyScrollTop);
body {
height: 2000px;
}
.fixed-menu-bottom {
position: fixed;
bottom: 0;
background: #000000;
width: 100%;
height: 80px;
}
.absolute-menu {
position: absolute;
background: #000000;
width: 100%;
height: 80px;
bottom: 0;
top: auto;
}
.fixed-menu-top {
position: fixed;
top: 0;
background: #000000;
width: 100%;
height: 80px;
}
<div id="navbar" class="fixed-menu-bottom">
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники