Для вертикальной прокрутки проблема заключается в сохранении верхних и нижних колонтитулов. Лучший способ сделать это - фактически иметь три таблицы: один для заголовков, один для данных (в прокручиваемом DIV) и один для нижнего колонтитула. Если ширина столбцов таблицы является фиксированной, это все, что вам нужно сделать. Если это не так, вам нужно будет использовать JavaScript для их настройки. Но здесь есть трюк: таблица с шириной столбца АВТО не может быть гарантирована для использования ширины, заданной в JS, особенно если столбец пуст, или текстовый элемент заголовка довольно длинный.
Я обработал это, установив ширину заголовков на основе данных, установив, изменился ли браузер, а затем изменил ширину данных. Как только они закрываются, я устанавливаю таблицу в режим FIXED для окончательной настройки.
Посмотрите здесь:
http://hifi.goneill.co.nz/cd.php
Нажмите на джаз, классическая кнопки и т.д., чтобы увидеть таблицы. Также прочитайте страницу технических заметок, так как она описывает кодирование и попробуйте версию Ajax.
Для вашей фиксированной колонки вы можете сделать что-то подобное: иметь две таблицы и использовать offsetTop одного для установки scrollTop другого. Посмотрите, как моя таблица устанавливает верхнюю строку при сортировке столбца с пустыми строками или сохраняет и восстанавливает текущую строку в версии Ajax при обмене между вкладками.