javascript 如何在屏幕上显示特定的表格单元格,而不考虑滚动位置?

fykwrbwg  于 2023-06-04  发布在  Java
关注(0)|答案(1)|浏览(108)

在此表中,“left data”的rowspan太大,根据表的滚动位置,“left data”的文本可能会被隐藏。
如何在屏幕上连续显示“左侧数据”的文本而不考虑滚动位置?
当然,我正在处理的实际表包含更多的数据,并且在不同的地方合并了单元格。

const myTbody = myTable.getElementsByTagName("tbody")[0];
const myTr = document.getElementById("myTr");
const firstTd = myTr.children[0];

for (const i of [...Array(100).keys()]) {
  const td = document.createElement("td");
  td.textContent = `right data${i}`;

  const tr = document.createElement("tr");
  tr.appendChild(td);

  myTbody.appendChild(tr);
  firstTd.rowSpan = Number(firstTd.rowSpan) + 1;
}
div.container {
  height: 500px;
  overflow-y: auto;
}

#myTable {
  width: 300px;
  border-collapse: collapse;
  table-layout: fixed;
  background-color: lightsteelblue;
}

#myTable thead {
  position: sticky;
  top: 0;
  background-color: lightgray;
}

#myTable th,
#myTable td {
  border: 1px solid black;
  padding: 10px;
}
<div class="container">
  <table id="myTable">
    <thead>
      <tr>
        <th>left header</th>
        <th>right header</th>
      </tr>
    </thead>
    <tbody id="myTbody">
      <tr id="myTr">
        <td>left data</td>
        <td>right data</td>
      </tr>
    </tbody>
  </table>
</div>
inn6fuwd

inn6fuwd1#

将文本“left data” Package 到<span>元素中...添加类,如fixed-column

<td><span class="fixed-column">left data</span></td>

然后添加以下CCS规则:

.fixed-column{
    position: fixed;
    top: 50%;
}

向下滚动时,span元素将保持在中心位置
演示:Fixed text in column

相关问题