<div class="table-container"><table id="my-table"><thead><tr><th>Header 1</th><th>Header 2</th><th>Header 3</th></tr></thead><tbody><tr><td>Fixed</td><td>Data 1</td><td>Data 2</td></tr><tr><td>Fixed</td><td>Data 3</td><td>Data 4</td></tr></tbody></table><table><thead><tr><th>Header 1</th></tr></thead><tbody><tr><td>Fixed</td></tr><tr><td>Fixed</td></tr></tbody></table></div> 实现拖动父级滚动条超出100像素固定表格下所有的第一列td 实例
时间: 2023-07-09 14:26:56 浏览: 111
可以通过以下方式实现拖动父级滚动条超出100像素固定表格下所有的第一列td:
1. 首先将所有第一列的单元格设置为固定宽度,并将它们设置为相对定位。
2. 使用 JavaScript 监听父级容器的滚动事件,并根据滚动距离调整所有第一列单元格的左间距。
3. 当滚动距离超过100像素时,将所有第一列单元格的左间距设置为0,使它们固定在表格中。
下面是一些示例代码,可以根据实际情况进行修改:
HTML 代码:
```html
<div class="table-container">
<table id="my-table">
<thead>
<tr>
<th class="fixed-column">Header 1</th>
<th>Header 2</th>
<th>Header 3</th>
</tr>
</thead>
<tbody>
<tr>
<td class="fixed-column">Fixed</td>
<td>Data 1</td>
<td>Data 2</td>
</tr>
<tr>
<td class="fixed-column">Fixed</td>
<td>Data 3</td>
<td>Data 4</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th>Header 1</th>
</tr>
</thead>
<tbody>
<tr>
<td class="fixed-column">Fixed</td>
</tr>
<tr>
<td class="fixed-column">Fixed</td>
</tr>
</tbody>
</table>
</div>
```
CSS 代码:
```css
.table-container {
overflow-x: auto;
max-width: 100%;
}
#my-table {
border-collapse: collapse;
width: 100%;
}
#my-table th,
#my-table td {
padding: 10px;
text-align: left;
border: 1px solid #ccc;
}
.fixed-column {
position: relative;
width: 100px;
left: 0;
z-index: 1;
}
```
JavaScript 代码:
```javascript
var table = document.getElementById("my-table");
var firstColumn = table.getElementsByClassName("fixed-column");
table.parentElement.addEventListener("scroll", function () {
var scrollLeft = this.scrollLeft;
for (var i = 0; i < firstColumn.length; i++) {
if (scrollLeft > 100) {
firstColumn[i].style.left = "0";
} else {
firstColumn[i].style.left = scrollLeft + "px";
}
}
});
```
这种方法可以在父容器滚动时固定所有表格下的第一列,但是可能会出现一些问题,例如在固定列时表格宽度可能会变窄,因此您需要根据实际情况进行调整。
阅读全文