@fpsstyle
Человек

Как сделать чтобы при скроле добавлялись класы в nav на реакт?

Здравья желаю, генералы JavaScript войск. Как мне сделать чтобы когда пользователь проскролит страницу в nav добавились эти класы
.nav-scrolled{
  background-color: white;
}
.nav-scrolled-links{
  color: black;
}
.top_nums p a {
  opacity: 1;
}

Сам сайт переношу на реакт и раньше это делал через библиотеку на JQuery.
<nav className="navbar navbar-expand-lg navbar-light fixed-top" id="mainNav">
            <div className="container">
                  <a className="navbar-brand js-scroll-trigger" href="#page-top">
                  <h1 className="text-uppercase">

                  <div className="kingplace-logo">
                    <img src={Logo} alt=""/>
                          </div>
                  </h1>
                  </a>
                  <div className="top_nums">
                    <p className="text-black mb-4"><a href="tel:+380503921260"> +38 (098) 211 98 58</a></p>
                    <p className="text-black mb-4"><a href="tel:+380634868240"> +38 (066) 562 11 51</a></p>
                  </div>
                  <button className="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
                  <span className="navbar-toggler-icon"></span>
                  </button>

                  <div className="collapse navbar-collapse" id="navbarResponsive">

                  <ul className="navbar-nav ml-auto">
                  <li className="nav-item">
                  <a className="nav-link js-scroll-trigger" href="#okomp">О комплексе</a>
                  </li>
                  <li className="nav-item">
                  <a className="nav-link js-scroll-trigger" href="#preim">Преимущества</a>
                  </li>
                  <li className="nav-item">
                  <a className="nav-link js-scroll-trigger" href="#price">Цены</a>
                  </li>
                  <li className="nav-item">
                  <a className="nav-link js-scroll-trigger" href="#rassr">Рассрочка</a>
                  </li>
                  <li className="nav-item">
                  <a className="nav-link js-scroll-trigger" href="#plan">Планировки</a>
                  </li>
                  <li className="nav-item">
                  <a className="nav-link js-scroll-trigger" href="#contact">Контакты</a>
                  </li>
                  </ul>


                  </div>
            </div>
        </nav>

Полный проект.
https://github.com/fpsstyle228/manchetten
  • Вопрос задан
  • 75 просмотров
Пригласить эксперта
Ответы на вопрос 1
RomReed
@RomReed
JavaScript, Reatc js, React Native, Redux
componentDidMount() {
    window.addEventListener('scroll', this.handleScroll);
},

componentWillUnmount() {
    window.removeEventListener('scroll', this.handleScroll);
},

handleScroll=(event)=> {
   var hiddenInput = document.createElement("mainNav");
    hiddenInput.setAttribute("className", "nav-scrolled nav-scrolled-links top_nums");
},
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы