Как изменить цвет ссылки Navbar при прокрутке в React или Gatsby? - PullRequest
0 голосов
/ 15 февраля 2020

Во время прокрутки я хочу изменить цвет ссылок в зависимости от Id. Как я могу это сделать?

Пример:

     <div>
          <nav>
            <div className="bg-mainColor h-16 flex justify-between">
              <div className="text-white">Navbar</div>

              <div>
                <Link to="/" className="text-white">
                  Home
                </Link>
                <Link to="#first" className="text-white">
                  Features
                </Link>
                <a href="#" className="text-white">
                  Courses
                </a>
              </div>
            </div>
          </nav>

          <div className="min-h-screen" id="feature">
            Features
          </div>

          <div className="min-h-screen" id="course">
            Courses
          </div>

        </div>

Проверьте эту картинку, чтобы понять меня больше Demo Navbar

1 Ответ

1 голос
/ 15 февраля 2020

Вы должны добавить Id к вашей ссылке и добавить прослушиватель событий в свой componentDidMount:

componentDidMount() {
  document.addEventListener('scroll' , this.handleScroll)
}

, а ваш handleScroll будет выглядеть так:

handleScroll  = (event) => {
  //handle your event base on scroll in pixels or what ever for example : 
  if(window.scrollY > 100) {
     let aEl = document.getElementById('YOUR_LINK_ID');
     aEl.setAttribute("style" , "color : red")

  } 
}

и не забудьте removeEventListener на ComponentWillUnMount:

componentWillUnMount() {
  document.removeEventListener('scroll',this.handleScroll);
}

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