I have come across a great paradox.
I have already finished my project, I wanted to improve it by correcting some details as it is (among others) to keep the header cells fixed when doing vertical scroll in the tables.
I have turned to the great google in search of a "simple" solution, because I consider that the W3C since its inception has created the necessary conditions for even modern browsers handle this without major traumas (however to this day none still manages it).
In my searches on google I found really impressive solutions !! and without more I began to adapt them, one and one more, and another; and in the end none worked ... why? because I had to adapt my code to them.
That is why I turn to you to help me, I would like a utility that allows me to do what is proposed without major changes (or at least the minimum) beyond what it means to add a <script src="..."></script>
to my project.
It is important to mention that my project uses CSS and many of the routines that exist for this purpose are strongly CSS based and damage (or collide) with what I already have done in my pages.
An indispensable requirement to the solution is that it is based exclusively on javascript (or jQuery) without touching the CSS in such a way that it does not damage what I have already created.
Thank you in advance for your help.
Here is an example of the table to which I would like the fixed header to be kept:
.LN {
background-color:#3399ff;
color:#fff;
border-color: #C0C0C0;
border-left-style: solid;
border-left-width: 1px;
border-right-style: solid;
border-right-width: 1px;
border-top-width: 1px;
border-bottom-width:1px;
}
<table id="TBLineDocument" border="0" cellspacing="0" cellpadding="0">
<thead>
<tr>
<th class="LN"> </th>
<th class="LN">Producto</th>
<th class="LN">Descripción</th>
<th class="LN">Almacen</th>
<th class="LN">Unidad</th>
<th class="LN">Cantidad</th>
<th class="LN">Valor Bs.</th>
<th class="LN">Dscto</th>
<th class="LN">Total Neto</th>
<th class="LN">Iva</th>
<th class="LN">Comis</th>
<th class="LN">Referencia</th>
</tr>
</thead>
<tbody>
<tr>
<th class="LN"><a id="LN_Menu_1">1</a></th>
<td><input name="LN_codigo_1" size="20" style="width:93px;"></td>
<td><input name="LN_descripcion_1" size="40" style="width:310px; display:inline;" disabled></td>
<td><select name="LN_Almacen_1" size="1" style="width:70px;" disabled><option></option><option value="3939">FUERA DE INVENTARIO</option></select></td>
<td><select name="LN_Unidad_1" size="1" style="width:70px;" disabled><option></option><option value="5452">TRAMO</option></select></td>
<td><input name="LN_Cantidad_1" size="10" style="text-align: right;"></td>
<td><input name="LN_valorBs_1" size="12" style="text-align: right;"></td>
<td><input name="LN_Dscto_1" size="05" style="text-align: right;" disabled></td>
<td><input name="LN_TotalNeto_1" size="14" style="text-align: right;" disabled></td>
<td><input name="LN_CodIVA_1" size="02" style="text-align: center;" disabled></td>
<td><input name="LN_Comision_1" size="05" style="text-align: right;" maxlength="05" ></td>
<td><input name="LN_Referencia_1" size="13" style="text-align: left; " maxlength="12" disabled></td>
</tr>
<tr>
<th class="LN"><a id="LN_Menu_1">2</a></th>
<td><input name="LN_codigo_1" size="20" style="width:93px;"></td>
<td><input name="LN_descripcion_1" size="40" style="width:310px; display:inline;" disabled></td>
<td><select name="LN_Almacen_1" size="1" style="width:70px;" disabled><option></option><option value="3939">FUERA DE INVENTARIO</option></select></td>
<td><select name="LN_Unidad_1" size="1" style="width:70px;" disabled><option></option><option value="5452">TRAMO</option></select></td>
<td><input name="LN_Cantidad_1" size="10" style="text-align: right;"></td>
<td><input name="LN_valorBs_1" size="12" style="text-align: right;"></td>
<td><input name="LN_Dscto_1" size="05" style="text-align: right;" disabled></td>
<td><input name="LN_TotalNeto_1" size="14" style="text-align: right;" disabled></td>
<td><input name="LN_CodIVA_1" size="02" style="text-align: center;" disabled></td>
<td><input name="LN_Comision_1" size="05" style="text-align: right;" maxlength="05" ></td>
<td><input name="LN_Referencia_1" size="13" style="text-align: left; " maxlength="12" disabled></td>
</tr>
<tr>
<th class="LN"><a id="LN_Menu_1">3</a></th>
<td><input name="LN_codigo_1" size="20" style="width:93px;"></td>
<td><input name="LN_descripcion_1" size="40" style="width:310px; display:inline;" disabled></td>
<td><select name="LN_Almacen_1" size="1" style="width:70px;" disabled><option></option><option value="3939">FUERA DE INVENTARIO</option></select></td>
<td><select name="LN_Unidad_1" size="1" style="width:70px;" disabled><option></option><option value="5452">TRAMO</option></select></td>
<td><input name="LN_Cantidad_1" size="10" style="text-align: right;"></td>
<td><input name="LN_valorBs_1" size="12" style="text-align: right;"></td>
<td><input name="LN_Dscto_1" size="05" style="text-align: right;" disabled></td>
<td><input name="LN_TotalNeto_1" size="14" style="text-align: right;" disabled></td>
<td><input name="LN_CodIVA_1" size="02" style="text-align: center;" disabled></td>
<td><input name="LN_Comision_1" size="05" style="text-align: right;" maxlength="05" ></td>
<td><input name="LN_Referencia_1" size="13" style="text-align: left; " maxlength="12" disabled></td>
</tr>
<tr>
<th class="LN"><a id="LN_Menu_1">4</a></th>
<td><input name="LN_codigo_1" size="20" style="width:93px;"></td>
<td><input name="LN_descripcion_1" size="40" style="width:310px; display:inline;" disabled></td>
<td><select name="LN_Almacen_1" size="1" style="width:70px;" disabled><option></option><option value="3939">FUERA DE INVENTARIO</option></select></td>
<td><select name="LN_Unidad_1" size="1" style="width:70px;" disabled><option></option><option value="5452">TRAMO</option></select></td>
<td><input name="LN_Cantidad_1" size="10" style="text-align: right;"></td>
<td><input name="LN_valorBs_1" size="12" style="text-align: right;"></td>
<td><input name="LN_Dscto_1" size="05" style="text-align: right;" disabled></td>
<td><input name="LN_TotalNeto_1" size="14" style="text-align: right;" disabled></td>
<td><input name="LN_CodIVA_1" size="02" style="text-align: center;" disabled></td>
<td><input name="LN_Comision_1" size="05" style="text-align: right;" maxlength="05" ></td>
<td><input name="LN_Referencia_1" size="13" style="text-align: left; " maxlength="12" disabled></td>
</tr>
<tr>
<th class="LN"><a id="LN_Menu_1">5</a></th>
<td><input name="LN_codigo_1" size="20" style="width:93px;"></td>
<td><input name="LN_descripcion_1" size="40" style="width:310px; display:inline;" disabled></td>
<td><select name="LN_Almacen_1" size="1" style="width:70px;" disabled><option></option><option value="3939">FUERA DE INVENTARIO</option></select></td>
<td><select name="LN_Unidad_1" size="1" style="width:70px;" disabled><option></option><option value="5452">TRAMO</option></select></td>
<td><input name="LN_Cantidad_1" size="10" style="text-align: right;"></td>
<td><input name="LN_valorBs_1" size="12" style="text-align: right;"></td>
<td><input name="LN_Dscto_1" size="05" style="text-align: right;" disabled></td>
<td><input name="LN_TotalNeto_1" size="14" style="text-align: right;" disabled></td>
<td><input name="LN_CodIVA_1" size="02" style="text-align: center;" disabled></td>
<td><input name="LN_Comision_1" size="05" style="text-align: right;" maxlength="05" ></td>
<td><input name="LN_Referencia_1" size="13" style="text-align: left; " maxlength="12" disabled></td>
</tr>
<tr>
<th class="LN"><a id="LN_Menu_1">6</a></th>
<td><input name="LN_codigo_1" size="20" style="width:93px;"></td>
<td><input name="LN_descripcion_1" size="40" style="width:310px; display:inline;" disabled></td>
<td><select name="LN_Almacen_1" size="1" style="width:70px;" disabled><option></option><option value="3939">FUERA DE INVENTARIO</option></select></td>
<td><select name="LN_Unidad_1" size="1" style="width:70px;" disabled><option></option><option value="5452">TRAMO</option></select></td>
<td><input name="LN_Cantidad_1" size="10" style="text-align: right;"></td>
<td><input name="LN_valorBs_1" size="12" style="text-align: right;"></td>
<td><input name="LN_Dscto_1" size="05" style="text-align: right;" disabled></td>
<td><input name="LN_TotalNeto_1" size="14" style="text-align: right;" disabled></td>
<td><input name="LN_CodIVA_1" size="02" style="text-align: center;" disabled></td>
<td><input name="LN_Comision_1" size="05" style="text-align: right;" maxlength="05" ></td>
<td><input name="LN_Referencia_1" size="13" style="text-align: left; " maxlength="12" disabled></td>
</tr>
<tr>
<th class="LN"><a id="LN_Menu_1">7</a></th>
<td><input name="LN_codigo_1" size="20" style="width:93px;"></td>
<td><input name="LN_descripcion_1" size="40" style="width:310px; display:inline;" disabled></td>
<td><select name="LN_Almacen_1" size="1" style="width:70px;" disabled><option></option><option value="3939">FUERA DE INVENTARIO</option></select></td>
<td><select name="LN_Unidad_1" size="1" style="width:70px;" disabled><option></option><option value="5452">TRAMO</option></select></td>
<td><input name="LN_Cantidad_1" size="10" style="text-align: right;"></td>
<td><input name="LN_valorBs_1" size="12" style="text-align: right;"></td>
<td><input name="LN_Dscto_1" size="05" style="text-align: right;" disabled></td>
<td><input name="LN_TotalNeto_1" size="14" style="text-align: right;" disabled></td>
<td><input name="LN_CodIVA_1" size="02" style="text-align: center;" disabled></td>
<td><input name="LN_Comision_1" size="05" style="text-align: right;" maxlength="05" ></td>
<td><input name="LN_Referencia_1" size="13" style="text-align: left; " maxlength="12" disabled></td>
</tr>
<tr>
<th class="LN"><a id="LN_Menu_1">8</a></th>
<td><input name="LN_codigo_1" size="20" style="width:93px;"></td>
<td><input name="LN_descripcion_1" size="40" style="width:310px; display:inline;" disabled></td>
<td><select name="LN_Almacen_1" size="1" style="width:70px;" disabled><option></option><option value="3939">FUERA DE INVENTARIO</option></select></td>
<td><select name="LN_Unidad_1" size="1" style="width:70px;" disabled><option></option><option value="5452">TRAMO</option></select></td>
<td><input name="LN_Cantidad_1" size="10" style="text-align: right;"></td>
<td><input name="LN_valorBs_1" size="12" style="text-align: right;"></td>
<td><input name="LN_Dscto_1" size="05" style="text-align: right;" disabled></td>
<td><input name="LN_TotalNeto_1" size="14" style="text-align: right;" disabled></td>
<td><input name="LN_CodIVA_1" size="02" style="text-align: center;" disabled></td>
<td><input name="LN_Comision_1" size="05" style="text-align: right;" maxlength="05" ></td>
<td><input name="LN_Referencia_1" size="13" style="text-align: left; " maxlength="12" disabled></td>
</tr>
<tr>
<th class="LN"><a id="LN_Menu_1">9</a></th>
<td><input name="LN_codigo_1" size="20" style="width:93px;"></td>
<td><input name="LN_descripcion_1" size="40" style="width:310px; display:inline;" disabled></td>
<td><select name="LN_Almacen_1" size="1" style="width:70px;" disabled><option></option><option value="3939">FUERA DE INVENTARIO</option></select></td>
<td><select name="LN_Unidad_1" size="1" style="width:70px;" disabled><option></option><option value="5452">TRAMO</option></select></td>
<td><input name="LN_Cantidad_1" size="10" style="text-align: right;"></td>
<td><input name="LN_valorBs_1" size="12" style="text-align: right;"></td>
<td><input name="LN_Dscto_1" size="05" style="text-align: right;" disabled></td>
<td><input name="LN_TotalNeto_1" size="14" style="text-align: right;" disabled></td>
<td><input name="LN_CodIVA_1" size="02" style="text-align: center;" disabled></td>
<td><input name="LN_Comision_1" size="05" style="text-align: right;" maxlength="05" ></td>
<td><input name="LN_Referencia_1" size="13" style="text-align: left; " maxlength="12" disabled></td>
</tr>
<tr>
<th class="LN"><a id="LN_Menu_1">10</a></th>
<td><input name="LN_codigo_1" size="20" style="width:93px;"></td>
<td><input name="LN_descripcion_1" size="40" style="width:310px; display:inline;" disabled></td>
<td><select name="LN_Almacen_1" size="1" style="width:70px;" disabled><option></option><option value="3939">FUERA DE INVENTARIO</option></select></td>
<td><select name="LN_Unidad_1" size="1" style="width:70px;" disabled><option></option><option value="5452">TRAMO</option></select></td>
<td><input name="LN_Cantidad_1" size="10" style="text-align: right;"></td>
<td><input name="LN_valorBs_1" size="12" style="text-align: right;"></td>
<td><input name="LN_Dscto_1" size="05" style="text-align: right;" disabled></td>
<td><input name="LN_TotalNeto_1" size="14" style="text-align: right;" disabled></td>
<td><input name="LN_CodIVA_1" size="02" style="text-align: center;" disabled></td>
<td><input name="LN_Comision_1" size="05" style="text-align: right;" maxlength="05" ></td>
<td><input name="LN_Referencia_1" size="13" style="text-align: left; " maxlength="12" disabled></td>
</tr>
</tbody>
</table>