Foros del Web » Programando para Internet » Javascript » Frameworks JS »

[SOLUCIONADO] Cabecera con menu fija en pantalla al hacer scroll

Estas en el tema de Cabecera con menu fija en pantalla al hacer scroll en el foro de Frameworks JS en Foros del Web. Hola, lo que quiero hacer se usa mucho ultimamente en infinidad de webs, básicamente quiero que al hacer scroll hacia abajo la cabecera que incorpora ...
  #1 (permalink)  
Antiguo 01/02/2013, 16:39
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
Exclamación Cabecera con menu fija en pantalla al hacer scroll

Hola,

lo que quiero hacer se usa mucho ultimamente en infinidad de webs, básicamente quiero que al hacer scroll hacia abajo la cabecera que incorpora un menu horizontal se mantenga en pantalla mientras me desplazo hacia abajo.

Este es el CSS de la cabecera:
Código CSS:
Ver original
  1. #cabecera {
  2.     width:100%;
  3.     height:90px;
  4.     background-color:#000000;
  5. }
  6. #contenido-cabecera {
  7.     margin:0 auto;
  8.     padding:35px 0 55px;
  9.     width:960px;
  10. }
  11. #logo {
  12.     float:left;
  13.     width:150px;
  14.     color:#fff;
  15.     margin:0;
  16. }
  17. /* MENU */
  18. nav {
  19.     margin:0;
  20.     float:right;
  21.     text-align:center;
  22.     width:810px;
  23. }
  24. nav ul{
  25.     float:right;
  26.     list-style:none;
  27.     margin:0;
  28.     padding:0;
  29. }
  30. nav ul li{
  31.     display:inline;
  32.     text-transform:uppercase;
  33.     font-size:15px;
  34.     font-weight:bold;
  35.     text-align:center;
  36.     margin-left:65px;
  37. }
  38. nav ul li a{
  39.     color:#fe9b00;
  40.     text-decoration:none;
  41. }
  42. nav ul li a:hover {
  43.     color:#E2E2E2;
  44. }
  45. nav .activo a {
  46.     color:#fff;
  47. }

Este es el script jquery:
Código Javascript:
Ver original
  1. <script>
  2. $(function() {
  3.  
  4.     // grab the initial top offset of the navigation
  5.     var sticky_navigation_offset_top = $('#cabecera').offset().top;
  6.      
  7.     // our function that decides weather the navigation bar should have "fixed" css position or not.
  8.     var sticky_navigation = function(){
  9.         var scroll_top = $(window).scrollTop(); // our current vertical position from the top
  10.          
  11.         // if we've scrolled more than the navigation, change its position to fixed to stick to top,
  12.         // otherwise change it back to relative
  13.         if (scroll_top > sticky_navigation_offset_top) {
  14.             $('#cabecera').css({ 'position': 'fixed', 'top':0, 'left':0 });
  15.         } else {
  16.             $('#cabecera').css({ 'position': 'relative' });
  17.         }  
  18.     };
  19.      
  20.     // run our function on load
  21.     sticky_navigation();
  22.      
  23.     // and run it again every time you scroll
  24.     $(window).scroll(function() {
  25.          sticky_navigation();
  26.     });
  27.  
  28. });
  29. </script>

Pues nada que no ocurre nada se mantiene al cabecera en su sitio. ¿cómo puedo hacerlo?

Saludos.
  #2 (permalink)  
Antiguo 01/02/2013, 17:30
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Cabecera con menu fija en pantalla al hacer scroll

Al final lo solucione simplemente con CSS, no os preocupeis,

Gracias
  #3 (permalink)  
Antiguo 08/02/2013, 10:46
 
Fecha de Ingreso: enero-2012
Ubicación: Santiago de Surco, Lima - Perú
Mensajes: 266
Antigüedad: 12 años, 2 meses
Puntos: 57
Respuesta: Cabecera con menu fija en pantalla al hacer scroll

Hola MindPaniC, que tal.

No estaba demás mencionar que tu solución con CSS fue utilizar la propiedad
Código CSS:
Ver original
  1. position: fixed
.

Recuerda que no colocar la solución, de haber sido hallada, convierte el tema abierto en algo inservible y sin valor para el foro.

Etiquetas: css, fija, pantalla, scroll
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:35.