Foros del Web » Programando para Internet » Jquery »

tablas de cabecera fija

Estas en el tema de tablas de cabecera fija en el foro de Jquery en Foros del Web. Buen día a todos. Bueno, la idea que quiero desarrollar es una tabla con una cabecera fija, PERO la idea no es ponerle fixed a ...
  #1 (permalink)  
Antiguo 23/06/2016, 09:41
 
Fecha de Ingreso: septiembre-2015
Mensajes: 58
Antigüedad: 9 años, 2 meses
Puntos: 2
tablas de cabecera fija

Buen día a todos.


Bueno, la idea que quiero desarrollar es una tabla con una cabecera fija, PERO la idea no es ponerle fixed a la propiedad position de css3, ya que esto implica que no se puede mover ni vertical ni horizontalmente, y dado que la tabla que necesito manejar tiene bastantes columnas, necesito que la cabecera se mantenga fija al hacer scroll vertical, pero se pueda desplazar horizontalmente.

Gracias a dos funciones como éstas logré algo parecido a lo que necesito:

Código Javascript:
Ver original
  1. $(function(){
  2.             //detectar scroll hacia abajo
  3.             var obj = $('#contenedor');          //objeto sobre el que quiero detectar scroll
  4.             var obj_top = 0;  //scroll vertical inicial del objeto
  5.            
  6.             obj.scroll(function(){
  7.                 var obj_act_top = obj.scrollTop();  //obtener scroll top instantaneo
  8.                 if(obj_act_top > obj_top){
  9.                     //scroll hacia abajo
  10.                     $("#cabecera2").css({'position':'fixed' });//cambiar a la propiedad fixed cuando se haga scroll vertical
  11.                     $("#contenido2").css({'margin-top':'20px' });
  12.                     console.log('movimiento vertical: '+obj_act_top);
  13.                    
  14.                 }
  15.                 if(obj_act_top < obj_top){
  16.                     //scroll hacia arriba
  17.                     $("#cabecera2").css({'position':'absolute' });
  18.                     $("#contenido2").css({'margin-top':'20px' });
  19.                     console.log('movimiento vertical: '+obj_act_top);
  20.                 }
  21.                 obj_top = obj_act_top;
  22.                
  23.             });
  24.            
  25.            
  26.         });
  27.        
  28.         $(function(){  //me desplaza horizontalmente el contenedor de la cabecera que tiene propiedad fixed.
  29.             var lastPos = 0;
  30.             var objeto = $('#table_derecha');
  31.             objeto.scroll(function(){
  32.                 var obj_left = objeto.scrollLeft();
  33.                 if (obj_left > lastPos) {
  34.                     $("#cabecera2").css({'margin-left':-obj_left+'px' });
  35.                 }
  36.                 if (obj_left < lastPos){
  37.                     $("#cabecera2").css({'margin-left':-obj_left+'px' });
  38.                 }
  39.                
  40.                 lastPos = obj_left;//almacenar scroll top anterior
  41.             });
  42.         });

Esto me funciona bien y el scroll lo puedo mover horizontalmente y se queda fijo al hacer scroll vertical, pero la falla es que al tener la propiedad fixed, como la cabecera es de gran tamaño horizontalmente, ésta se ubica sobre el div que contiene la tabla y se sobresale bastante, lo cual se ve terrible, existe alguna propiedad que pueda usar para que la cabecera no se vea fuera del div o una forma de poner estatico un contenedor de forma vertical sin aplicar la propiedad position:fixed; ?.



Alguien podría ayudarme?

Y gracias de ante mano.

Etiquetas: cabecera, javascript, tablas
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 01:09.