带有固定第一列的表格滚动

agr*_*gri 5 html css jquery

我试图让表格在按钮点击时向左/向右滚动,将第一列保持在原位。我的数据都在一张表中,所以我不能创建两个表而不是一个。有没有办法做到这一点?见下面的小提琴。

jQuery:

$(document).ready(function() {
  $("#right").on("click", function() {
    var position = $("table").position();
    $("table").animate({
      left: position.left - 200
    }, 800);
  });
});
$("#left").on("click", function() {
var position = $("table").position();
 $("table").animate({
   left: position.left + 200
 }, 800);
});
Run Code Online (Sandbox Code Playgroud)

CSS:

#table-wrapper {
width: 95%;
float: left;
overflow-x: scroll;
background: #ddd;
Run Code Online (Sandbox Code Playgroud)

}

table {
 background: #fff;
 width: 1200px;
 text-align:center;
 overflow: hidden;
 position:relative;
}
table thead tr th:first-child,
table tbody tr td:first-child {
 background: yellow;
 top: auto;
 left: 0.5;
 position: absolute;
 width: 6em;
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<button id="left">&larr;</button>
<button id="right">&rarr;</button>

<div id="table-wrapper">
  <table border="1">
    <thead>
      <tr>
        <th>Heading1</th>
        <th>Heading2</th>
        <th>Heading3</th>
        <th>Heading4</th>
        <th>Heading5</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>1</td>
        <td>12</td>
        <td>13</td>
        <td>14</td>
        <td>15</td>
      </tr>
      <tr>
        <td>2</td>
        <td>22</td>
        <td>23</td>
        <td>24</td>
        <td>25</td>
      </tr>
      <tr>
        <td>3</td>
        <td>32</td>
        <td>33</td>
        <td>34</td>
        <td>35</td>
      </tr>
    </tbody>
  </table>
</div>
Run Code Online (Sandbox Code Playgroud)

这是我的小提琴

Raj*_*ddy 3

这是一个工作小提琴

使用此 cssposition:fixed来修复元素。

进行下面提到的更改

table thead tr th:first-child,
table tbody tr td:first-child {
  background: yellow;
  top: auto;
  position:fixed;  /*change this*/
  left: 0.5;
  width: 6em;
}
Run Code Online (Sandbox Code Playgroud)

另外你还必须稍微改变一下你的 Jquery。问题出在选择器上。

在你的 Jquery 中替换$("table")$("#table-wrapper")因为它table-wrapper有滚动而不是表格。