0

I want to change the color of my navbar after scrolling

I did a similar code to this Changing nav-bar color after scrolling? but it didn't wotk

<script>
  $(function () {
    $(document).scroll(function () {
      var $nav = $(".fixed-top");
      $nav.toggleClass('scrolled', $(this).scrollTop() > $nav.height());
    });
  });
</script>

//The HTML
<nav class="navbar navbar-dark navbar-expand-lg fixed-top">
  <div class="container">
    <a class="navbar-brand my-font" href="#">Site Header</a>
     ......
 </div>
 </nav>

//The css
.fixed-top {
  background-color:#CC3333;
  background-image: none;
  background-repeat: no-repeat;
}

.fixed-top.scrolled {
  color: #FFFFFF;
  transition: background-color 200ms linear;
}
Jeroen Heier
  • 3,520
  • 15
  • 31
  • 32

2 Answers2

1

Try this. You Only need to Change the Css.

 $(function () {
    $(document).scroll(function () {
      var $nav = $(".fixed-top");
      $nav.toggleClass('scrolled', $(this).scrollTop() > $nav.height());
    });
  });
@import "https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.5/css/bootstrap.min.css";
.fixed-top {
  position:fixed;
  width:100%;
  height:50px;
  background-color:#CC3333;

}

.fixed-top.scrolled {
  background-color: blue;
  transition: background-color 200ms linear;
}
<nav class="navbar navbar-dark navbar-expand-lg fixed-top">
  <div class="container">
    <a class="navbar-brand my-font" href="#">Site Header</a>
     ......
 </div>
 </nav>

<p>
"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nitione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliqre et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostru
re et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostru
re et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostru
re et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostru
re et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostru
re et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostru
re et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostru
re et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostru
re et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostru
re et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostru
re et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostru

</p>
0

You need to change css as you are changing background-color so apply background-color when class added and give position fixed to nav

 $(function () {
    $(document).scroll(function () {
      var $nav = $(".fixed-top");
      $nav.toggleClass('scrolled', $(this).scrollTop() > $nav.height());
    });
  });
body{
  margin:0px;
}

.fixed-top {
  background-color:#CC3333;
  position:fixed;
  left:0;
  right:0;
}

.fixed-top.scrolled {
  background-color: #ffff00;
  transition: background-color 200ms linear;
}
.content{
  min-height:200vh;
  background:#f2f2f2;
  padding-top:30px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<nav class="navbar navbar-dark navbar-expand-lg fixed-top">
  <div class="container">
    <a class="navbar-brand my-font" href="#">Site Header</a>
     ......
 </div>
 </nav>
 <div class="content">
   hiiiiiiiiiiiiiiiiii
 </div>
Hiren Vaghasiya
  • 5,454
  • 1
  • 11
  • 25
  • thank you. it worked, looks like the code was great before as well, i i just linked the jquery. I just don't understand how it couldn't load my internal jquery – Willson Marandi Jan 26 '19 at 04:48