CSS position: sticky
- единственное, что вам нужно. Вы уже используете его где-то на навигационной панели, но из-за кода JavaScript все портится. Закомментируйте вашу функцию fixNav
и прокрутите прослушиватель событий.
Вместо этого используйте CSS, чтобы сказать, когда элементы nav
и #sidebar
должны быть липкими. Элемент боковой панели должен иметь небольшое смещение, потому что он должен находиться чуть ниже панели навигации. С помощью свойства top
вы можете установить положение триггера, когда элемент становится липким. То же самое касается left
, right
и bottom
.
Добавьте следующие строки в существующие стили nav
и #sidebar
и посмотрите, что произойдет.
nav {
position: sticky;
top: 0;
}
#sidebar{
position:sticky;
top: 8vh; /* <-- height of the nav */
}