Published in: jQuery
URL: http://jsatt.blogspot.com
Tested and working with:
Internet Explorer(Win) (6.0, 7.0, 8.0)
Firefox(Win, Linux) (3.0)
Safari(Win, Mac) (3.0)
Chrome (Win) (2.0)
Opera (Win) (9.6)
Tested and having issues with:
- Firefox (All) (1.0, 1.5, 2.0)
A sample HTML layout can be seen here
Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported
Expand |
Embed | Plain Text
function scrollableTable(contain, headerClass){ //default values for params //container(s) to make children adjustable var contain = contain || ".scrollContainer"; //class name to apply created header(s) var headerClass = headerClass || "scrollHead"; //for each matching container $(contain).each(function(){ //remove any existing headers $(this).find('.'+headerClass).remove(); //set globals for elements to work with var container = $(this).css('position','relative'); var scrollTable = container.find('table'); var header = $('<table/>') .addClass(scrollTable.attr('class')) .addClass(headerClass) .append(container.find('thead').clone()) .prependTo(container); //resize and move header function adjustHeader(){ header .css('position','absolute') .css('top',container.scrollTop()) .css('left',( scrollTable.position().left + container.scrollLeft() ) ) .width(scrollTable.width()) .find('th').each(function(i){ $(this).width($(container.find('tbody td').get(i)).width()); }) } //initial adjustment adjustHeader(); //adjust when scrolling container .unbind('scroll') .scroll(adjustHeader); //adjust when window is resized $(window).resize(adjustHeader); }) }
You need to login to post a comment.

