具有固定标题和第一列的垂直表行

时间:2014-10-08 10:58:37

标签: javascript css html-table

我目前正在尝试创建一个固定的第一行顶行和固定的第一列左列的表。

对于传统表格,有很多解决方案,但由于数据的注入方式,此表必须使用垂直堆叠的行进行布局。表列(垂直行)也必须能够溢出父列并滚动。

至少我希望最左边的列固定,标题(Loc 1,2,3等)将是一个很好的。我已经尝试过这个位置:绝对但这似乎不起作用。

<div style="postion:relative;">
<div class="table-responsive top-margin ">
    <table class="table table-striped table-hover">
        <tr class="heads-col">
            <th>Data Decriptors</th>
            <th>Data Description 1</th>
            <th>Data Description 2</th>
            <th>Data Description 3</th>
            <th>Data Description 4</th>
            <th>Data Description 5</th>
            <th>Data Description 6</th>
            <th>Data Description 7</th>
            <th>Data Description 8</th>
            <th>Data Description 9</th>
            <th>Data Description 10</th>
            <th>Data Description 11</th>
            <th>Data Description 12</th>
        </tr>
        <tr>
            <th>Location 1</th>
            <td>Entry First Line 1</td>
            <td>Entry First Line 2</td>
            <td>Entry First Line 3</td>
            <td>Entry First Line 4</td>
            <td>Entry First Line 1</td>
            <td>Entry First Line 2</td>
            <td>Entry First Line 3</td>
            <td>Entry First Line 4</td>
            <td>Entry First Line 1</td>
            <td>Entry First Line 2</td>
            <td>Entry First Line 3</td>
            <td>Entry First Line 4</td>
        </tr>   
    </table>
    </div>
</div>

http://jsfiddle.net/1xzb0x3s/3/

这个解决方案非常完美:http://www.matts411.com/static/demos/grid/index.html

但我无法使用垂直行。

任何帮助都非常感激。

1 个答案:

答案 0 :(得分:0)

如果您将最左侧列中的单元格设置为&#34; position:relative&#34;然后使用容器的滚动位置更新style.left,它将完成这一操作。我已经添加了课程&#34;固定行&#34;还有一些JS,下面还有一个小提琴。

var container = window.document.getElementById("container");
container.addEventListener("scroll", function(){
var rowHeader = window.document.getElementsByClassName("fixed-row");
    for(var i=0; i<rowHeader.length; i++) {
        rowHeader[i].style.left = (container.scrollLeft + "px");
    }
}, false);

https://jsfiddle.net/jchaplin2/ftt64fxk/