Cuando se desplaza hacia abajo en una página con una tabla larga, normalmente el encabezado de la tabla se desplaza y se vuelve inútil. Este código clona el encabezado de la tabla y lo aplica en la parte superior de la página una vez que se ha desplazado más allá de él, y desaparece cuando se ha desplazado más allá de la tabla.
En estos días, probablemente sea mejor usar position: sticky;
que usar JavaScript, pero tendrá que hacer esa llamada de soporte del navegador por su cuenta.
function UpdateTableHeaders() {
$("div.divTableWithFloatingHeader").each(function() {
offset = $(this).offset();
scrollTop = $(window).scrollTop();
if ((scrollTop > offset.top) && (scrollTop < offset.top + $(this).height())) {
$(".tableFloatingHeader", this).css("visibility", "visible");
$(".tableFloatingHeader", this).css("top", Math.min(scrollTop - offset.top, $(this).height() - $(".tableFloatingHeader", this).height()) + "px");
}
else {
$(".tableFloatingHeader", this).css("visibility", "hidden");
$(".tableFloatingHeader", this).css("top", "0px");
}
})
}
$(document).ready(function() {
$("table.tableWithFloatingHeader").each(function() {
$(this).wrap("<div class="divTableWithFloatingHeader" style="position:relative"></div>");
$("tr:first", this).before($("tr:first", this).clone());
clonedHeaderRow = $("tr:first", this)
clonedHeaderRow.addClass("tableFloatingHeader");
clonedHeaderRow.css("position", "absolute");
clonedHeaderRow.css("top", "0px");
clonedHeaderRow.css("left", "0px");
clonedHeaderRow.css("visibility", "hidden");
});
UpdateTableHeaders();
$(window).scroll(UpdateTableHeaders);
});
Ver la pluma
ANTIGUA técnica de jQuery: encabezados persistentes de Chris Coyier (@chriscoyier)
en CodePen.
(Visited 10 times, 1 visits today)