Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.12.2013, 14:57
Новичок на форуме
Отправить личное сообщение для pavenko_sv Посмотреть профиль Найти все сообщения от pavenko_sv
 
Регистрация: 16.12.2013
Сообщений: 4

Как зафиксировать ячейки th при прокрутке таблицы по вертикали
Есть таблица в которой на определена высота и есть скрытые строки, открываемые по клику. Мне нужно зафиксировать при прокрутке первые столбцы, пока есть возможность использовать тэг th. Моя версия создать спозиционированный абсолютно div и добавить туда новую табличку созданную из первых столбцов исходной таблицы, но запутался в коде. разгребаю пока. Может ли кто предложить решение лучше, может код посмотреть и поправить. Или хорошую библиотеку посоветовать. Пробовал через "fixedheadertable" но тут проблемы с триггерами на кнопки возникли. Строчки нужно сворачивать.

В общем и в целом всё вроде
Ответить с цитированием
  #2 (permalink)  
Старый 16.12.2013, 15:01
Новичок на форуме
Отправить личное сообщение для pavenko_sv Посмотреть профиль Найти все сообщения от pavenko_sv
 
Регистрация: 16.12.2013
Сообщений: 4

Сразу исправлюсь в теме ошибка бегунок по ГОРИЗОНТАЛИ! По вертикали оставляем браузеру.
Ответить с цитированием
  #3 (permalink)  
Старый 16.12.2013, 15:22
Новичок на форуме
Отправить личное сообщение для pavenko_sv Посмотреть профиль Найти все сообщения от pavenko_sv
 
Регистрация: 16.12.2013
Сообщений: 4

(function () {
var $table = document.createElement('table');
$table.id = 'stageTableDiv'
$table.style.backgroundColor = 'white';
$table.style.borderCollapse = 'collapse';
$table.style.border = '1px';
$table.border = $('#stageTable')[0].border;
$($table).append(document.createElement('thead'));
for (var i = 0; i < $('#stageTable thead tr th').length ; i++) {
$($table).find('thead').append(document.createElem ent('tr'));
$($table).find('thead tr')[i].innerHTML = $('#stageTable thead tr th')[i].outerHTML;
}
$($table).append(document.createElement('tbody'));
for (var i = 0; i < $('#stageTable tbody tr').length ; i++) {
$($table).find('tbody').append(document.createElem ent('tr'));
for (var j = 0; j < $('#stageTable tbody tr th').length ; j++) {
var $el = document.createElement('th');
$el.innerHTML = $('#stageTable tbody tr th')[j].outerHTML;
$($table).find('tbody tr')[i].innerHTML = $elappend($el[0]);
}
}

$($table)[0].innerHTML = $('#stageTable')[0].innerHTML;
$($table).offset($('#stageTable').offset());
$table.style.position = 'absolute';
$table.style.zIndex = 1000;
$('div.fixedheadertable').append($table);

$("button:last").click(function () {
$("button:first").trigger('click');
});

//$('#stageTable th')[0].style.position = 'fixed';
})(jQuery)
Ответить с цитированием
  #4 (permalink)  
Старый 16.12.2013, 16:39
Новичок на форуме
Отправить личное сообщение для pavenko_sv Посмотреть профиль Найти все сообщения от pavenko_sv
 
Регистрация: 16.12.2013
Сообщений: 4

Спасибо за помощь коллеги:
Уже разобрался:

//----------------------------------------------------------------------------------------------------
//Клонируем всю табличку удаляем всё кроме th
//----------------------------------------------------------------------------------------------------
var $t = $('#stageTable').clone();
$t.find('td').remove();
$t.appendTo('div.clone').css('position', 'absolute').css('z-index', '1000');
$t.attr('id', 'stageTableFix');
//----------------------------------------------------------------------------------------------------
//Равняем таблички по высоте
//----------------------------------------------------------------------------------------------------
$t.height($('#stageTable').height());
//----------------------------------------------------------------------------------------------------
//Равняем по точке рисования таблицы
//----------------------------------------------------------------------------------------------------
$t.offset($('#stageTable').offset());
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
IE8 и баг с display:none для td (ячейки таблицы) SegaMega Events/DOM/Window 1 21.09.2012 06:56
Исчезающий блок при прокрутке как вконтакте ImDim Элементы интерфейса 1 28.08.2012 09:21
Как сделать что бы при регистрации человека на моем сайте у него не появлялось... drunkwolfs Общие вопросы Javascript 2 07.08.2012 10:58
Дерганье div-а при прокрутке Vreditel Events/DOM/Window 2 04.03.2011 08:07