jQuery « Зафиксировать столбец таблицы
Каким образом можно зафиксировать столбец(столбцы) таблицы а остальное ее содержимое прокручивать скроллом.
Спасибо. :)
Спасибо. :)
1 ответов
Переделанный чужой пример.
Откуда взят не помню (не сохранил ссылку)
Первоначально имел только фиксированный заголовок.
В данном варианте (автор d_i_g@list.ru):
Фиксированный заголовок и первый столбец.
Сама таблица не имеет ссылок на классы (ранее нужно было прописывать).
Дизайн утрирован специально чтобы показать, что если убрать -2 - появляется мусор. Должен работать в IE 8.0 (но вероятно нужны какие то разрешения, которые у автора релиза уже были установлены):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
<meta http-equiv="content-type" content="text/html; charset=WIN1251" />
<title>Скроллируемая Таблица. Шаг 3</title>
<link rel="stylesheet" href="/example/examples.css" type="text/css" />
<style type="text/css">
.scroll-table {
width: 90%;
overflow: scroll;
height: 300px;
position: relative;
}
.scroll-table td {
padding: 5px;
border: 3;
border-collapse: separate;
border-color: red blue;
border-style: solid;
}
.scroll-table th {
background: #eee;
padding: 5px;
border: 3;
border-collapse: separate;
border-color: red blue;
border-style: solid;
}
.scroll-table thead tr {
position: relative;
z-index: 2;
top: expression( this.parentElement.parentElement.parentElement.scrollTop-2);
}
.scroll-table th:first-child {
position: relative;
background: #aaa;
left: expression( this.parentElement.parentElement.parentElement.parentElement.scrollLeft-2);
}
.scroll-table tbody {
height: 15px;
overflow-x: scroll;
overflow-y: scroll;
}
.scroll-table td:first-child {
position: relative;
background: #ddd;
left: expression( this.parentElement.parentElement.parentElement.parentElement.scrollLeft-2);
}
</style>
</head>
<body>
<div id="container" style="width:50%">
<div class="scroll-table">
<table width="97%">
<thead>
<tr>
<th>Название позиции</th>
<th>Бренд</th>
<th>Стоимость</th>
<th>Оптовое количество</th>
<th>Количество</th>
</tr>
</thead>
<tbody>
<tr>
<td>05D391K (FNR05K391) варистор, d=5мм, V=390В</td>
<td>TWN</td>
<td>0,035 USD</td>
<td>200</td>
<td>200</td>
</tr>
<tr>
<td>14D271K (FNR14K271) варистор, d=14мм, V=270В</td>
<td>TWN</td>
<td>0,091 USD</td>
<td>200</td>
<td>200</td>
</tr>
<tr>
<td>05D390K (FNR05K390) варистор, d=5мм, V=39В</td>
<td>TWN</td>
<td>0,037 USD</td>
<td>200</td>
<td>200</td>
</tr>
<tr>
<td>14D241K (FNR14K241) варистор, d=14мм, V=240В</td>
<td>TWN</td>
<td>0,091 USD</td>
<td>200</td>
<td>200</td>
</tr>
<tr>
<td>05D331K (FNR05K331) варистор, d=5мм, V=330В</td>
<td>TWN</td>
<td>0,035 USD</td>
<td>200</td>
<td>200</td>
</tr>
<tr>
<td>14D151K (FNR14K151) варистор, d=14мм, V=150В</td>
<td>TWN</td>
<td>0,088 USD</td>
<td>200</td>
<td>200</td>
</tr>
<tr>
<td>05D271K (FNR05K271) варистор, d=5мм, V=270В</td>
<td>TWN</td>
<td>0,035 USD</td>
<td>200</td>
<td>200</td>
</tr>
<tr>
<td>10D911K (FNR10K911) варистор, d=10мм, V=910В</td>
<td>TWN</td>
<td>0,091 USD</td>
<td>200</td>
<td>200</td>
</tr>
<tr>
<td>05D241K (FNR05K241) варистор, d=5мм, V=240В</td>
<td>TWN</td>
<td>0,035 USD</td>
<td>200</td>
<td>200</td>
</tr>
<tr>
<td>10D820K (FNR10K820) варистор, d=10мм, V=82В</td>
<td>TWN</td>
<td>0,057 USD</td>
<td>200</td>
<td>200</td>
</tr>
<tr>
<td>05D221K (FNR05K221) варистор, d=5мм, V=220В</td>
<td>TWN</td>
<td>0,035 USD</td>
<td>200</td>
<td>200</td>
</tr>
<tr>
<td>10D781K (FNR10K781) варистор, d=10мм, V=780В</td>
<td>TWN</td>
<td>0,069 USD</td>
<td>200</td>
<td>200</td>
</tr>
<tr>
<td>05D181K (FNR05K181) варистор, d=5мм, V=180В</td>
<td>TWN</td>
<td>0,035 USD</td>
<td>200</td>
<td>200</td>
</tr>
<tr>
<td>10D751K (FNR10K751) варистор, d=10мм, V=750В</td>
<td>TWN</td>
<td>0,069 USD</td>
<td>200</td>
<td>200</td>
</tr>
<tr>
<td>05D121K (FNR05K121) варистор, d=5мм, V=120В</td>
<td>TWN</td>
<td>0,035 USD</td>
<td>200</td>
<td>200</td>
</tr>
<tr>
<td>10D681K (FNR10K681) варистор, d=10мм, V=680В</td>
<td>TWN</td>
<td>0,069 USD</td>
<td>200</td>
<td>200</td>
</tr>
<tr>
<td>10D680K (FNR10K680) варистор, d=10мм, V=68В</td>
<td>TWN</td>
<td>0,057 USD</td>
<td>200</td>
<td>200</td>
</tr>
</tbody>
</table>
</div>
</div>
</body>
</html>
Если иметь 2 таблицы, сделать не сложно... даже JS не надо. Одна таблица стоит мертво, а вторая скроллится.
Например так:
<table border=1 height=80px style="float:left">
<tr><td>line0</td></tr>
<tr><td>line1</td></tr>
<tr><td>line2</td></tr>
</table>
<div style="height:80px;width:60px;overflow:auto;">
<table border=1>
<tr><td>line0</td></tr>
<tr><td>line1</td></tr>
<tr><td>line2</td></tr>
<tr><td>line3</td></tr>
<tr><td>line4</td></tr>
<tr><td>line5</td></tr>
<tr><td>line6</td></tr>
<table>
</div>
<tr><td>line0</td></tr>
<tr><td>line1</td></tr>
<tr><td>line2</td></tr>
</table>
<div style="height:80px;width:60px;overflow:auto;">
<table border=1>
<tr><td>line0</td></tr>
<tr><td>line1</td></tr>
<tr><td>line2</td></tr>
<tr><td>line3</td></tr>
<tr><td>line4</td></tr>
<tr><td>line5</td></tr>
<tr><td>line6</td></tr>
<table>
</div>