Почему моя прокрутка не работает? - PullRequest
0 голосов
/ 16 января 2019

Я пытаюсь сделать липкую навигацию с активным состоянием во время прокрутки. Поэтому, когда вы прокручиваете каждый раздел, навигация имеет активное состояние. Вроде как то, что видно здесь: 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 или что-то подобное.

Я чувствую, что упускаю что-то простое. Какие-нибудь мысли?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...