poner personalizar navegacion logo imagen fija con cabecera bootstrap barra css twitter-bootstrap twitter-bootstrap-3

css - personalizar - Reducción de la barra de navegación cuando se desplaza hacia abajo(bootstrap3)



personalizar navbar bootstrap (6)

Barra de navegación pegajosa:

Para hacer un navegador adhesivo necesitas agregar la clase navbar-fixed-top a tu navegador

Documentación oficial :
http://getbootstrap.com/components/#navbar-fixed-top

Ejemplo oficial :
http://getbootstrap.com/examples/navbar-fixed-top/

Un código de ejemplo simple :

<nav class="navbar navbar-default navbar-fixed-top" role="navigation"> <div class="container"> ... </div> </nav>

con jsfiddle relacionado: http://jsfiddle.net/ur7t8/

Cambiar el tamaño de la barra de navegación:

Si desea que la barra de navegación cambie de tamaño mientras se desplaza por la página, puede dar un vistazo a este ejemplo: http://www.bootply.com/109943

JS

$(window).scroll(function() { if ($(document).scrollTop() > 50) { $(''nav'').addClass(''shrink''); } else { $(''nav'').removeClass(''shrink''); } });

CSS

nav.navbar.shrink { min-height: 35px; }

Animación:

Para agregar una animación mientras se desplaza, todo lo que necesita hacer es establecer una transición en el navegador

CSS

nav.navbar{ background-color:#ccc; // Animation -webkit-transition: all 0.4s ease; transition: all 0.4s ease; }

Hice un jsfiddle con el código de ejemplo completo: http://jsfiddle.net/Filo/m7yww8oa/

Me gustaría construir un efecto de barra de navegación como está en http://dootrix.com/ en mi página (después de que la barra se hace más pequeña y el logotipo cambia). Estoy usando el programa de arranque 3 para mi página. ¿Hay alguna manera fácil de realizarlo con bootstrap?


Estoy usando este código para mi proyecto

$(window).scroll ( function() { if ($(document).scrollTop() > 50) { document.getElementById(''your-div'').style.height = ''100px''; //For eg } else { document.getElementById(''your-div'').style.height = ''150px''; } } );

Probablemente esto ayudará


Para aquellos que no están dispuestos a usar jQuery aquí hay una forma de hacer Javascript de Vanilla Javascript usando classList :

function runOnScroll() { var element = document.getElementsByTagName(''nav'') ; if(document.body.scrollTop >= 50) { element[0].classList.add(''shrink'') } else { element[0].classList.remove(''shrink'') } console.log(topMenu[0].classList) };

Puede haber una manera más agradable de hacerlo usando alternar , pero lo anterior funciona bien en Chrome


Puede combinar eventos "scroll" y "scrollstop" para lograr el resultado deseado:

$(window).on("scroll",function(){ $(''nav'').addClass(''shrink''); }); $(window).on("scrollstop",function(){ $(''nav'').removeClass(''shrink''); });


Si está utilizando AngularJS, y está utilizando Angular Bootstrap: https://angular-ui.github.io/bootstrap/

Puedes hacer esto muy bien así:

HTML:

<nav id="header-navbar" class="navbar navbar-default" ng-class="{''navbar-fixed-top'':scrollDown}" role="navigation" scroll-nav> <div class="container-fluid top-header"> <!--- Rest of code ---> </div> </nav>

CSS: ( Tenga en cuenta que uso el relleno como un navegador más grande para encoger sin relleno, puede modificarlo como desee)

nav.navbar { -webkit-transition: all 0.4s ease; transition: all 0.4s ease; background-color: white; margin-bottom: 0; padding: 25px; } .navbar-fixed-top { padding: 0; }

Y luego agrega tu directiva

Directiva : ( Tenga en cuenta que es posible que necesite cambiar this.pageYOffset >= 50 de 50 a más o menos para satisfacer sus necesidades)

angular.module(''app'') .directive(''scrollNav'', function ($window) { return function(scope, element, attrs) { angular.element($window).bind("scroll", function() { if (this.pageYOffset >= 50) { scope.scrollDown = true; } else { scope.scrollDown = false; } scope.$apply(); }); }; });

Esto hará el trabajo muy bien, de manera animada y genial.


toggleClass también funciona:

$(window).on("scroll", function() { $("nav").toggleClass("shrink", $(this).scrollTop() > 50) });