Foros del Web » Creando para Internet » CSS »

Footer fijo y desplegable

Estas en el tema de Footer fijo y desplegable en el foro de CSS en Foros del Web. ¿Qué tal foreros? Dejé el diseño web hace ya bastantes años y ahora me estan pidiendo un favor especial, pero estoy super desencanchado. Alguno podría ...
  #1 (permalink)  
Antiguo 05/07/2014, 12:17
 
Fecha de Ingreso: noviembre-2002
Ubicación: tu mente
Mensajes: 17
Antigüedad: 21 años, 5 meses
Puntos: 1
Footer fijo y desplegable

¿Qué tal foreros?
Dejé el diseño web hace ya bastantes años y ahora me estan pidiendo un favor especial, pero estoy super desencanchado.

Alguno podría decirme como puedo hacer un footer que tenga fijo el título y el resto se despliege al llegar al final de la página como el que esta en esta página? (donde dice learn more):

http://www.johnmaxwell.com/

No se si sea HTML5 o CCS

Como siempre, Muchas gracias por su ayuda
  #2 (permalink)  
Antiguo 05/07/2014, 13:28
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Footer fijo y desplegable

Es un efecto interesante.

El footer cuando todavía no llegas al final de la página esta fixed, esto quiere decir que está pegado y fijo al pie de página y tiene un bottom:-600px de este modo se oculta. Luego calculan el scroll de la página cuando esta cerca del final le cambian los valores a position y bottom dejándolos como cualquier otro footer y ocurre el efecto.
  #3 (permalink)  
Antiguo 05/07/2014, 14:44
 
Fecha de Ingreso: noviembre-2002
Ubicación: tu mente
Mensajes: 17
Antigüedad: 21 años, 5 meses
Puntos: 1
Respuesta: Footer fijo y desplegable

No calculan el scroll, simplemente, cuando el body llega al final cambia de fixed: position: absolute, bottom= -600 a position: relative, bottom= 0 pero no se como hacerlo
  #4 (permalink)  
Antiguo 05/07/2014, 14:46
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Respuesta: Footer fijo y desplegable

Cita:
Iniciado por Rorschach Ver Mensaje
No calculan el scroll, simplemente, cuando el body llega al final cambia [...]
O sea, ¿qué pedo?

memoadian te ha explicado perfectamente cómo hacerlo, y, seguramente, es como lo hacen en esa página.
  #5 (permalink)  
Antiguo 05/07/2014, 14:55
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Footer fijo y desplegable

¿Y como sabes cuando el body llega al final?

pues con el scroll

Código Javascript:
Ver original
  1. $(window).scroll(function(evnt){
  2.                                    
  3.             var offset = $(window).scrollTop();
  4.            
  5.             if(footerCatch == 0){
  6.                 footerCatch = $('body').height() - $(window).height();
  7.             }
  8.  
  9.             if(offset >= navCatch){
  10.                 $('#header').not(".fixed-navigation.header-shadow").addClass('fixed-navigation header-shadow');
  11.             }else{
  12.                 $('#header.fixed-navigation.header-shadow').removeClass('fixed-navigation header-shadow');
  13.             }
  14.  
  15.             if($(window).height() < $('body').height() && !shortPage){
  16.  
  17.                 if(offset >= (footerCatch - 1) && !footerActive){
  18.                     !footerCaught && catchFooter();
  19.                 } else {
  20.                     footerCaught && releaseFooter();
  21.                 }
  22.             }
  23.  
  24.             // Parallax Scrolling for Hero Image
  25.             requestAnimationFrame(function(){
  26.                 slideItem();
  27.             });
  28.  
  29.         });

esta es la función que usan.
  #6 (permalink)  
Antiguo 07/07/2014, 10:45
 
Fecha de Ingreso: noviembre-2002
Ubicación: tu mente
Mensajes: 17
Antigüedad: 21 años, 5 meses
Puntos: 1
Respuesta: Footer fijo y desplegable

memoadian, muchas gracias por tu ayuda. Pzin, cómprate una vida, si no ayudas, no critiques.
  #7 (permalink)  
Antiguo 07/07/2014, 14:19
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Respuesta: Footer fijo y desplegable

Cita:
Iniciado por Rorschach Ver Mensaje
memoadian, muchas gracias por tu ayuda. Pzin, cómprate una vida, si no ayudas, no critiques.
Ahora aviso a ver si meten esa norma en las políticas del foro.

No era una crítica, era una observación sobre tu incoherencia. Pero bueno, ya tienes el código mascadito ahí, que supongo que es lo importante después de todo.
  #8 (permalink)  
Antiguo 07/07/2014, 14:37
 
Fecha de Ingreso: noviembre-2002
Ubicación: tu mente
Mensajes: 17
Antigüedad: 21 años, 5 meses
Puntos: 1
Respuesta: Footer fijo y desplegable

¡Ay! pobre nerdsito, seguro lo único que tienes en la vida es tu posición en este foro. Te recuerdo que el foro 22 donde llorabas cerró hace 10 años, ya puedes superarlo, madurar y dejar de descargar tu frustración en linea. Te recomiendo salir a tomar un poco de sol.
  #9 (permalink)  
Antiguo 07/07/2014, 21:23
 
Fecha de Ingreso: noviembre-2002
Ubicación: tu mente
Mensajes: 17
Antigüedad: 21 años, 5 meses
Puntos: 1
Respuesta: Footer fijo y desplegable

Pos no sale, a ver si alguien me ayuda encontrando el error.

En mi html tengo:


Código HTML:
Ver original
  1. <link rel="stylesheet" type="text/css" href="css/mbfooter.css">
  2. </head>
  3.  
  4.     <div>
  5.  
  6.         <img src="images/imagen1.jpg" width="1200" height="1855" alt=""/>
  7.  
  8.     </div>
  9.  
  10.  
  11.  
  12.     <footer id="footer">
  13.     <div id="footer-top">
  14.  
  15.                 <a href="#" id="learn-more-link">Queremos saber más de ti</a>
  16.  
  17.             </div>
  18.         <div >
  19.             <img src="images/imgaen2.jpg" width="480" height="480" alt=""/>                
  20.         </div>
  21.     </footer>
  22.  
  23.  
  24.  
  25. <script src="codigos/script2.js"></script>
  26.  
  27. </body>

Luego en mi css tengo:

Código CSS:
Ver original
  1. footer,
  2. header,
  3. section {
  4.   display: block;
  5. }
  6. html {
  7.   font-size: 100%;
  8.   -webkit-text-size-adjust: 100%;
  9.   -ms-text-size-adjust: 100%;
  10. }
  11.  
  12. #footer {
  13.   width: 100%;
  14.   background: #da2027;
  15.   z-index: 1000;
  16.   color: #ffffff;
  17.   padding: 15px 0 100px 0;
  18.   position: fixed;
  19.   bottom: -540px;
  20.   min-height: 472px;
  21.  
  22.   -webkit-transform: translate3d(0,0,0);
  23.   -moz-transform: translate3d(0,0,0);
  24.   -ms-transform: translate3d(0,0,0);
  25.   -o-transform: translate3d(0,0,0);
  26.   transform: translate3d(0,0,0);
  27.  
  28.   -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
  29.   -moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
  30.   box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
  31. }
  32.  
  33. .relative-footer {
  34.   position: relative !important;
  35.   bottom: 0 !important;
  36.   margin-top: -60px;
  37. }

y en java:

Código Javascript:
Ver original
  1. var footerCatch = 0;
  2. var footerCaught = false;
  3. var footerActive = false;
  4.  
  5.         $('#learn-more-link').click(function(){
  6.  
  7.             if(!footerCaught && !footerActive){
  8.                 footerActive = true;
  9.                 activateFooter();
  10.             } else if(footerActive){
  11.                 footerActive = false;
  12.                 deactivateFooter();
  13.             } else if (footerCaught){
  14.  
  15.             }
  16.  
  17.             return false;
  18.         });
  19.  
  20.         // Handle Header and Footer on Scroll
  21.  
  22.         $(window).scroll(function(evnt){
  23.                                    
  24.             var offset = $(window).scrollTop();
  25.            
  26.             if(footerCatch == 0){
  27.                 footerCatch = $('body').height() - $(window).height();
  28.             }
  29.  
  30.             if(offset >= navCatch){
  31.                 $('#header').not(".fixed-navigation.header-shadow").addClass('fixed-navigation header-shadow');
  32.             }else{
  33.                 $('#header.fixed-navigation.header-shadow').removeClass('fixed-navigation header-shadow');
  34.             }
  35.  
  36.             if($(window).height() < $('body').height() && !shortPage){
  37.  
  38.                 if(offset >= (footerCatch - 1) && !footerActive){
  39.                     !footerCaught && catchFooter();
  40.                 } else {
  41.                     footerCaught && releaseFooter();
  42.                 }
  43.             }
  44.  
  45.             // Parallax Scrolling for Hero Image
  46.             requestAnimationFrame(function(){
  47.                 slideItem();
  48.             });
  49.  
  50.         });
  51.  
  52.    
  53. function activateFooter(){
  54.     footerActive = true;
  55.     var footerHeight = $('#footer').height() + 62 + 'px';
  56.     $(document).bodyHeight();
  57.     $('body').css('paddingBottom', footerHeight);
  58.     $('#footer').animate({
  59.         bottom: 0
  60.     }, 200, function(){
  61.  
  62.     });
  63. }
  64.  
  65. function deactivateFooter(){
  66.     footerActive = false;
  67.     var footerHeight = -($('#footer').height() + 62) + 'px';
  68.     $(document).bodyHeight();
  69.     $('body').css('paddingBottom', '0px');
  70.     $('#footer').animate({
  71.         bottom: footerHeight
  72.     }, 200, function(){
  73.  
  74.     });
  75. }
  76.  
  77. function catchFooter(){
  78.     footerCaught = true;
  79.     $('#footer').addClass('relative-footer');
  80. }
  81.  
  82. function releaseFooter(){
  83.     footerCaught = false;
  84.     $('#footer').removeClass('relative-footer');
  85. }


Muchas gracias por adelantado!
  #10 (permalink)  
Antiguo 09/07/2014, 02:58
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Respuesta: Footer fijo y desplegable

Cita:
Iniciado por Rorschach Ver Mensaje
Pos no sale, a ver si alguien me ayuda encontrando el error.
Parece que hayas copiado y pegado el código sin mirar mucho qué hace.

Cita:
Iniciado por Rorschach Ver Mensaje
[...] cuando el body llega al final cambia de fixed: position: absolute, bottom= -600 a position: relative, bottom= 0 pero no se como hacerlo
Pues si sólo quieres hacer eso, realmente sólo debes de calcular el scroll y compararlo con la altura de body. Si usas jQuery como parece que haces, pues sería usar scrollTop() y height() para realizar la comparación. Luego si se cumple la condición o no, puedes añadir o quitar una clase del pie de página con toggleClass() y ya te encargarís de las propiedades CSS donde tengas tus estilos.
  #11 (permalink)  
Antiguo 12/07/2014, 15:42
 
Fecha de Ingreso: abril-2014
Mensajes: 7
Antigüedad: 10 años
Puntos: 0
Pregunta Respuesta: Footer fijo y desplegable

Me parece realmente interesante ese efecto del nav, si este esta hecho solo en css, me podrian alguna idea de como plantear ese efecto? No entiendo muy bien.... si al menu le pasas el mouse encima sobre este sale el border top , pero lo que no entiendo es como se mantiene el border top en el menu li, mientras se hace el hover sobre el submenu.

Alguna ayuda.... Gracias.
  #12 (permalink)  
Antiguo 12/07/2014, 17:28
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Respuesta: Footer fijo y desplegable

Cita:
Iniciado por ottojeanpierre Ver Mensaje
como se mantiene el border top en el menu li, mientras se hace el hover sobre el submenu.
Pues porque se sigue dentro de ese li. Un submenú suele ser otra lista ul dentro de un li.

Por otro lado, es mejor que abras un tema nuevo si la duda difiere del tema en el que estás.

Etiquetas: html
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 02:53.