Я пытаюсь сделать липкую навигацию с активным состоянием во время прокрутки. Поэтому, когда вы прокручиваете каждый раздел, навигация имеет активное состояние. Вроде как то, что видно здесь:
https://codepen.io/rishabhp/pen/aNXVbQ
Проблема в том, что некоторые из моих номеров неверны. Вот код:
handleScroll = () => {
let sections = document.querySelectorAll('.deal-details__container'),
nav = document.querySelectorAll('.overview-nav'),
navHeight = nav[0].clientHeight;
let totalScroll = document.body.getBoundingClientRect().top;
window.addEventListener('scroll', () => {
sections.forEach(section => {
let topOffset = section.getBoundingClientRect().top;
let top = topOffset - navHeight,
bottom = top + section.clientHeight;
if (totalScroll >= top && totalScroll <= bottom) {
this.setState({ activeSection: true });
} else {
this.setState({ activeSection: false });
}
});
});
console.log(totalScroll);
};
Например, мой totalScroll внутри forEach составляет всего -20 или что-то подобное.
Я чувствую, что упускаю что-то простое. Какие-нибудь мысли?