JavaScript - Dejar menú en parte superior al hacer scroll

 
Vista:
sin imagen de perfil

Dejar menú en parte superior al hacer scroll

Publicado por José Joaquín (5 intervenciones) el 10/12/2015 21:06:35
Buenas, mi duda es la siguiente:

Tengo un menú de navegación típico debajo del banner, y quiero que al hacer scroll hacia abajo (leer la página con la ruleta de toda la vida, para entendernos) que se quede en la parte mas arriba de la página (con el banner ya oculto) y fijo.

Se que para dejarla fija en CSS hay que poner position:fixed; pero no se como decirle que la deje arriba en el navegador en vez de respetar el espacio que ocupaba el banner y que, al hacer scroll ya no está. No se si me explico bien.

Muchas gracias y saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Jordi
Val: 4
Ha aumentado su posición en 10 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Dejar menú en parte superior al hacer scroll

Publicado por Jordi (76 intervenciones) el 10/12/2015 21:23:38
Buenas José Joaquín,

A lo que tú buscas le llaman "sticky navbar". Hay cientos de ejemplos de cómo conseguirlo. Te dejo un ejemplo en JSFiddle que he encontrado por StackOverflow. Es la forma más sencilla de lograrlo sin usar Bootstrap (que tiene una clase que ya aplica el efecto).

http://jsfiddle.net/yeco/4EcFf/

Mírate todos los ficheros del link de JsFiddle, pero la clave está en lo siguiente:


1
2
3
4
5
6
7
8
9
function scroll() {
        if ($(window).scrollTop() >= origOffsetY) { // Si se ha scrolleado más de la distancia del navbar hasta arriba del todo...
            $('.menu').addClass('sticky'); // ... añadir la clase sticky, que hace un position:fixed
            $('.content').addClass('menu-padding');
        } else { // Si entra en else es que está el scroll arriba del todo y que hay que dejar el navbar en su sitio.
            $('.menu').removeClass('sticky');
            $('.content').removeClass('menu-padding');
        }
    }

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

Dejar menú en parte superior al hacer scroll

Publicado por José Joaquín (5 intervenciones) el 10/12/2015 21:27:25
Buah, perfecto. Muchísimas gracias. La verdad es que me he vuelto como loco buscando y no sabía que término era lo que yo buscaba.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar