改变scrollTop实现表格内容滚动原理,表头不变
时间: 2024-03-27 16:38:35 浏览: 91
实现表格内容滚动,表头不变,可以采用固定表头的方式,即将表头放在一个独立的元素中,表格内容放在另一个元素中,通过设置表格内容元素的样式属性 overflow: auto; 并固定表头元素的位置,来实现表格内容的滚动。
具体步骤如下:
1. HTML 结构
```
<div class="table-container">
<table>
<thead>
<tr>
<th>表头1</th>
<th>表头2</th>
<th>表头3</th>
</tr>
</thead>
<tbody>
<tr>
<td>内容1-1</td>
<td>内容1-2</td>
<td>内容1-3</td>
</tr>
<tr>
<td>内容2-1</td>
<td>内容2-2</td>
<td>内容2-3</td>
</tr>
...
</tbody>
</table>
</div>
```
2. CSS 样式
```
.table-container {
position: relative;
overflow: hidden;
height: 300px; /* 设置表格内容的高度 */
}
table {
width: 100%;
border-collapse: collapse;
}
thead th {
background-color: #eee;
position: sticky;
top: 0;
}
tbody {
overflow-y: auto;
height: calc(100% - 30px); /* 30px = 表头的高度 */
}
```
3. JavaScript 代码
```
// 获取表格内容元素和表头元素
var tableContainer = document.querySelector('.table-container');
var tableHead = document.querySelector('thead');
var tableBody = document.querySelector('tbody');
// 监听表格内容的滚动事件
tableBody.addEventListener('scroll', function() {
// 获取表格内容的滚动距离
var scrollTop = tableBody.scrollTop;
// 将表头固定在顶部
tableHead.style.transform = 'translateY(' + scrollTop + 'px)';
});
```
这样,就实现了表格内容的滚动,表头不变的效果。需要注意的是,这种方式只适用于表格内容较小的情况,如果表格内容非常大,可能会影响性能。
阅读全文