Change Header color on scroll

Change Header color on scroll

by zachreynolds

HTML

<div class="header">Scroll to change color</div>

CSS

* {margin:0;padding:0}

html {
    background: lightgray;
    height: 5000px;
}

.header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    padding: 20px;
    z-index: 10000;
    transition: all .7s ease-in-out;
    height: auto;
    background-color: rgba(0, 0, 0, 1);
    color:#fff;
    text-align: center;
    line-height: 40px;
    font: normal 20px 'Open Sans';
}

.header.active {
    background: red;
    -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.25);
    -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.25);
    box-shadow: 0 1px 5px rgba(0, 0, 0, 0.25);
}

JavaScript

$(window).on("scroll", function() {
    if($(window).scrollTop() > 100) {
        $(".header").addClass("active");
    } else {
        //remove the background property so it comes transparent again (defined in your css)
       $(".header").removeClass("active");
    }
});