Закрепление области html-таблицы

08.02.2015
Закрепление области в Excel используется для фиксации на листе  вертикальных и/или горизонтальных групп ячеек. Зафиксированные области ячеек не прокручиваются, что позволяет постоянно видеть информацию, размещенную в них. Например, зафиксировав в прайс-листе строку с названиями полей, нам не придётся каждый раз прокручивать прайс-лист наверх для определения того, что за данные находятся в том или ином столбце. Эта удобная функция может пригодиться и для фиксации областей html-таблиц, но, к сожалению, данная возможность не реализована в базовой функциональности html-таблиц. Поэтому приходится искать решение вопроса. К счастью, данную задачу можно решить при помощи 2-3 строк кода на javascript.
Как закрепить горизонтальную и вертикальную область html-таблицы? Для этого нужно использовать три слоя <div> и синхронизировать их прокрутку:
  • Первый слой для таблицы данных
  • Второй слой для однострочной таблицы горизонтальных заголовков. Его нужно разместить над слоем с таблицей данных
  • Третий слой для одноколоночной таблицы вертикальных заголовков. Его нужно разместить слева от слоя с таблицей данных
Задаём для всех слоёв id. Определяем размеры таблицы данных, и прописываем их  в стилях его слоя. Также включаем полосы прокрутки для этого слоя. Добавляем в тег слоя вызов события onscroll. В функции обработки этого события присваиваем слою с однострочной таблицей значение scrollLeft слоя данных, а слою с одноколоночной таблице значение scrollTop слоя данных. При помощи стилей убираем полосы прокрутки в слоях заголовков. После этого производим тонкую настройку слоев и таблиц.
Пример работы html-таблицы с закрепленными областями показан ниже.
Столбец 1
Столбец 2
Столбец 3
Столбец 4
Столбец 5
Столбец 6
Столбец 7
Столбец 8
Строка 1
Строка 2
Строка 3
Строка 4
Строка 5
Строка 6
Строка 7
Строка 8
Ячейка 1,1
Ячейка 1,2
Ячейка 1,3
Ячейка 1,4
Ячейка 1,5
Ячейка 1,6
Ячейка 1,7
Ячейка 1,8
Ячейка 2,1
Ячейка 2,2
Ячейка 2,3
Ячейка 2,4
Ячейка 2,5
Ячейка 2,6
Ячейка 2,7
Ячейка 2,8
Ячейка 3,1
Ячейка 3,2
Ячейка 3,3
Ячейка 3,4
Ячейка 3,5
Ячейка 3,6
Ячейка 3,7
Ячейка 3,8
Ячейка 4,1
Ячейка 4,2
Ячейка 4,3
Ячейка 4,4
Ячейка 4,5
Ячейка 4,6
Ячейка 4,7
Ячейка 4,8
Ячейка 5,1
Ячейка 5,2
Ячейка 5,3
Ячейка 5,4
Ячейка 5,5
Ячейка 5,6
Ячейка 5,7
Ячейка 5,8
Ячейка 6,1
Ячейка 6,2
Ячейка 6,3
Ячейка 6,4
Ячейка 6,5
Ячейка 6,6
Ячейка 6,7
Ячейка 6,8
Ячейка 7,1
Ячейка 7,2
Ячейка 7,3
Ячейка 7,4
Ячейка 7,5
Ячейка 7,6
Ячейка 7,7
Ячейка 7,8
Ячейка 8,1
Ячейка 8,2
Ячейка 8,3
Ячейка 8,4
Ячейка 8,5
Ячейка 8,6
Ячейка 8,7
Ячейка 8,8
 
Оглавление
Copyright © 2016