Изменение цвета фона навигации CSS только при прокрутке до первого тега раздела - PullRequest
0 голосов
/ 11 декабря 2018

Используя загрузочный фреймворк, я пытаюсь изменить цвет фона панели навигации с прозрачного на белый.В настоящее время это работает, когда я немного прокручиваю, используя класс navbar-shrink.Однако я хочу изменить цвет панели навигации с прозрачного на белый только после того, как попадаю к первому тегу раздела не сразу, когда панель навигации сжимается ...

#mainNav.navbar-shrink {
    border-bottom: 1px solid rgba(33,37,41,.1);
    background-color: #fff;
}

.container {
    background-color: grey;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>

<nav class="navbar navbar-expand-lg navbar-light fixed-top" id="mainNav">
    <div class="container">
        <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarResponsive">
            <ul class="navbar-nav ml-auto">
                <li class="nav-item">
                    <a class="nav-link js-scroll-trigger selected" href="#about">About</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link js-scroll-trigger" href="#services">Services</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link js-scroll-trigger" href="#portfolio">Projects</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link js-scroll-trigger" href="#contact">Contact</a>
                </li>
            </ul>
        </div>
    </div>
</nav>
<section class="bg-primary first" id="about">
    <div class="container">
        <div class="row">
</section>

Я хочу, чтобы цвет фона изменялся только при прокрутке тега раздела (id = about), а не при уменьшении навигационной панели

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018
$(document).ready(function () {
    $(window).on("scroll", function () {
        if ($(window).scrollTop() >= 800) {
            $(".navbar").addClass("navbar-shrink ");
        } else {
            $(".navbar").removeClass("navbar-shrink ");
        }
    });
});
0 голосов
/ 11 декабря 2018

Если вы используете плагин ScrollSpy для обработки обновления активной навигационной ссылки, вы можете использовать следующее решение.Это просто превращает панель навигации в белый цвет, когда секция #about прокручивается до.

$('[data-spy="scroll"]').on('activate.bs.scrollspy', function (e) {
  var tabId = $(e.target).find('a').attr("href");
  if(tabId == "#about"){
    $("#mainNav").css("background-color","#fff")
  }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...