У меня была похожая проблема, когда я хотел переместить навигацию из статического положения в фиксированное.Таким образом, навигация находится на статической позиции на странице, и как только пользователь достигнет точки останова, навигация изменится на фиксированную позицию, чтобы она всегда была видна и находилась в верхней части экрана.еще больше, высота тоже изменилась.
решение, которое у меня было для этого, так как основная проблема заключается в изменении общей высоты страницы, чтобы добавить элемент-заполнитель с точной высотой навигации и показать его, как только навигация станет липкой.
Таким образом, решение состоит только в том, чтобы гарантировать, что общая высота не изменяется.
Например, если вы измените свой CSS на этот, вы не должны видеть этот эффект (не мое предлагаемое решение!), Так как вы не изменили бы общую высоту, и, следовательно, вы не задействовали бы несколько прокруток.и вопросы повторного рендеринга:
nav {
height: 150px;
padding-bottom: 0;
background: black;
color: white;
transition: all 0.2s ease-in;
position: sticky;
}
nav.scrolled {
height: 80px;
padding-bottom: 70px;
}
вы могли бы получить лучшее понимание, если бы поместили немного console.log
при переключении состояния scrolled
.