Set Bootstrap navbar transparency on scroll

后端 未结 3 1501
挽巷
挽巷 2020-12-05 05:58

I use a secondary fille called custom.css to overwrite the bootstrap code and I would like to know how to create a code that is activating only when the visitor of my site i

3条回答
  •  鱼传尺愫
    2020-12-05 06:36

    Ok you need the following code to achieve this effect: (I am going to use jQuery as it is the bootstrap supported language).


    jQuery:

    /**
     * Listen to scroll to change header opacity class
     */
    function checkScroll(){
        var startY = $('.navbar').height() * 2; //The point where the navbar changes in px
    
        if($(window).scrollTop() > startY){
            $('.navbar').addClass("scrolled");
        }else{
            $('.navbar').removeClass("scrolled");
        }
    }
    
    if($('.navbar').length > 0){
        $(window).on("scroll load resize", function(){
            checkScroll();
        });
    }
    

    You can also use ScrollSpy to do this.


    and your CSS (example):

    /* Add the below transitions to allow a smooth color change similar to lyft */
    .navbar {
        -webkit-transition: all 0.6s ease-out;
        -moz-transition: all 0.6s ease-out;
        -o-transition: all 0.6s ease-out;
        -ms-transition: all 0.6s ease-out;
        transition: all 0.6s ease-out;
    }
    
    .navbar.scrolled {
        background: rgb(68, 68, 68); /* IE */
        background: rgba(0, 0, 0, 0.78); /* NON-IE */
    }
    

提交回复
热议问题